传递给我的方法的输入必须具有所需数量的符号。最小符号数由另一个输入参数动态指定。所以我准备了一个用于确认输入的表达式,但问题是它无法在字符串中找到符号字符并返回false值。 根据MSDN:
[character_group],匹配character_group中的任何单个字符。 默认情况下,匹配区分大小写。
和
{n,},匹配前一个元素至少n次。
我的方法:
public static bool HasSign(int minimChar, string input)
{
_pattern = "[!@#$%^&*()_+={}[]\\|?/.><,~`]{" + minimChar + ",}";
rgx=new System.Text.RegularExpressions.Regex(_pattern);
var res = rgx.Match(input);
return res.Success;
}
答案 0 :(得分:1)
你的角色类在这里过早结束,整个模式被“破坏”:
_pattern = "[!@#$%^&*()_+={}[]\\|?/.><,~`]{" + minimChar + ",}";
^
匹配来自[!@#$%^&*()_+={}[]
字符类的字符,然后匹配子模式的序列(\\|?/.><,~`]{2,}
- 1或0 |
字符,{{ 1}},除了换行符之外的任何字符,/
,>
,<
,,
和~
,然后是2个或更多`
符号)。
您需要转义]
内部,或者将其放在字符类开头并使用逐字字符串文字,以便使用]
来匹配反斜杠:
\\