以下正则表达式中的下划线是什么意思?
[a-zA-Z0-9_]
_
似乎没有任何区别,所以我不理解它的目的。
答案 0 :(得分:69)
下划线表示下划线。
答案 1 :(得分:48)
除小写字母,大写字母和数字外,还表示匹配下划线字符。
答案 2 :(得分:15)
这意味着下划线也匹配。
答案 3 :(得分:15)
perlre中记录了正则表达式。只要您对正则表达式有疑问,就可以查看这个地方。 Regular-Expressions.info网站也非常有用。
为了让你开始,你所看到的东西被称为“角色类”。字符类中的任何字符都可以匹配。
您可以使用-
制作一系列字符,因此a-z
是该范围内的任何小写字母。 A-Z
是大写字母,0-9
是数字。 _
是字面下划线。这些是Perl标识符(变量名称等)的合法字符。这是ASCII意义上的\w
字符类(而不是扩展的Unicode意义)。
人们经常使用它来匹配Perl变量名,但是人们会忘记这个规则。用户定义名称的第一个字符必须是字母或下划线(不是数字)。这意味着您应该为首字母使用不同的字符类:
[A-Za-z_][A-Za-z0-9_]*
答案 4 :(得分:9)
除了字符序列([.
,[:
和[=
),范围表达式(例如[a-z]
)和开头的回旋符号({ {1}}),括号表达式中的每个字符表示字符本身,就像下划线一样。
作为旁注,该表达式通常由[^
(单词字符,忽略unicode和locale)表示,通常用于定义允许在变量名中使用的字符集。 / p>