如何允许';[';和';]';通过Regex检查
本文关键字:通过 Regex 检查 何允许 | 更新日期: 2023-09-27 18:29:35
我进行了以下Regex检查,确保只输入字母、数字和*
字符。
Regex.IsMatch(searchString, @"^[a-zA-Z0-9*]+$")
但是,我想将其扩展为也接受( ) [ ]
字符。这是我迄今为止尝试过的,但返回错误:
Regex.IsMatch(searchString, @"^[a-zA-Z0-9[]()*]+$")
有人能提出解决方案吗?
用'
:逃离它们
Regex.IsMatch(searchString, @"^[a-zA-Z0-9'[']()*]+$")
应该注意的是,转义规则是不同的,这取决于字符是否在字符类(即[_chars_]
)内。
例如,必须将-(
转义为字符类之外的'(
,否则它表示组(即(_something to capture_)
)的开始。如果在字符类之外,则像?
和.
这样的其他字符必须始终转义。
注意
我已经删掉了"字符组"一词的使用,因为有人正确地向我指出,无论我试图描绘得多么清晰,它仍然会导致与"组"(捕获/非捕获)混淆。Regex可能已经够令人困惑的了,因为如果我不进一步搅乱局面的话。
您应该转义这样的特殊字符:
Regex.IsMatch(searchString, @"^[a-zA-Z0-9'[']()*]+$");