为什么点符号在这个正则表达式中不起作用?

时间:2010-08-19 20:06:53

标签: .net regex pattern-matching

NET Regex。 (使用ignore-case)

我希望它匹配

field_x_12
field_a_ABC
field_r_something

我的问题是.运算符在此正则表达式中不起作用的原因:

field_[.]_.*

然而这个(基本上相当于)正则表达式确实有效:

field_[a-z]_.*

关于点运算符.,我有什么遗漏吗?

5 个答案:

答案 0 :(得分:6)

字符类(.)内的[...]是一个文字点字符。如果您希望它充当通配符,请不要使用括号。

答案 1 :(得分:1)

您为什么使用[.][]表示一组明确的字符,因此.字符是RegEx正在寻找的字符。

field_._.*

应该可以正常工作。

请参阅this方便的.NET RegEx备忘单。

答案 2 :(得分:0)

括号内.是一个文字点,与任何字符都不匹配。

答案 3 :(得分:0)

你应该尝试field_._.*,因为在[]中它被视为一个实际的点。

答案 4 :(得分:0)

当它在字符类中时,点只是一个句点,而不是通配符。