我有简单的正则表达式@“[a-zA-Z]”来匹配字符串中的所有字符a-z,但我还需要数学运算符(*,/,+, - )。我正在阅读有关msdn的文档,但由于数学运算符被用作正则表达式中的其他标记,我丢失的速度相对较快
此解决方案有效:
@"[A-Za-z\*\+\-\/]"
感谢大家的帮助和资源。
答案 0 :(得分:2)
正确的答案是
@"[A-Za-z*+/-]"
或@"[A-Za-z-*+/]"
,或@"[-A-Za-z*+/]"
或@"[A-Za-z*\-+/]"
。
或者,使用不区分大小写的修饰符缩短它:@"(?i)[A-Z*+/-]"
(或使用带有RegexOptions.IgnoreCase
的相应@"[A-Z*+/-]"
,因为您似乎正在使用C#)。
在字符类中,未转义的连字符应位于开头或最终位置,以作为文字处理,或者在范围或速记类之后。否则,它必须被转义。此外,如果不是在字符类的开头,]
必须进行转义。其他字符不必在字符类中包含。
要进行测试,请使用适当的在线正则表达式测试程序。您需要一个.NET,请参阅Regex demo上的RegexStorm。