如何允许';[';和';]';通过Regex检查

本文关键字:通过 Regex 检查 何允许 | 更新日期: 2023-09-27 18:29:35

我进行了以下Regex检查,确保只输入字母、数字和*字符。

Regex.IsMatch(searchString, @"^[a-zA-Z0-9*]+$")

但是,我想将其扩展为也接受( ) [ ]字符。这是我迄今为止尝试过的,但返回错误:

Regex.IsMatch(searchString, @"^[a-zA-Z0-9[]()*]+$")

有人能提出解决方案吗?

如何允许';[';和';]';通过Regex检查

':逃离它们

Regex.IsMatch(searchString, @"^[a-zA-Z0-9'[']()*]+$")

应该注意的是,转义规则是不同的,这取决于字符是否在字符类(即[_chars_])内。

例如,必须将-(转义为字符类之外的'(,否则它表示组(即(_something to capture_))的开始。如果在字符类之外,则像?.这样的其他字符必须始终转义。

注意

我已经删掉了"字符"一词的使用,因为有人正确地向我指出,无论我试图描绘得多么清晰,它仍然会导致与"组"(捕获/非捕获)混淆。Regex可能已经够令人困惑的了,因为如果我不进一步搅乱局面的话。

您应该转义这样的特殊字符:

Regex.IsMatch(searchString, @"^[a-zA-Z0-9'[']()*]+$");