[a-zA-Z0-9_]中的_是什么意思?

unj*_*nj2 23 regex perl

在下面的正则表达式中,下划线是什么意思?

[a-zA-Z0-9_]

_似乎没有什么区别,所以我不明白它的目的.

ndi*_*dim 70

下划线表示下划线.

  • 尝试作为一种力量,我发现你的陈述没有一个问题; 它完全简单,逻辑无可非议:-) +1 (3认同)

No *_*ses 49

除了小写字母,大写字母和数字之外,它还意味着匹配下划线字符.


Otá*_*cio 15

这意味着下划线也匹配.


bri*_*foy 15

perlre中记录了正则表达式.只要您对正则表达式有疑问,就可以查看这个地方.该Regular-Expressions.info网站是非常有帮助了.

为了让你开始,你所看到的东西被称为"角色类".字符类中的任何字符都可以匹配.

您可以使用该字符创建一系列字符-,因此a-z该范围内的任何小写字母也是如此.A-Z是大写字母,0-9是数字.这_是一个字面下划线.这些是Perl标识符(变量名称等)的合法字符.这是\wASCII意义上的字符类(而不是扩展的Unicode意义).

人们经常使用它来匹配Perl变量名称,但是人们会忘记这个规则.用户定义名称的第一个字符必须是字母或下划线(不是数字).这意味着您应该为首字母使用不同的字符类:

 [A-Za-z_][A-Za-z0-9_]*
Run Code Online (Sandbox Code Playgroud)

  • +1回答*比直接问题更多*. (2认同)

Joã*_*lva 9

除了字符序列([.,[:[=),范围表达式(例如[a-z])和开头([^)中的抑扬符之外,括号表达式中的每个字符都表示字符本身,就像下划线一样.

作为旁注,该表达式通常由\w(单词字符,忽略unicode和locale)表示,通常用于定义允许在变量名中使用的字符集.

  • \ w取决于区域设置,也将匹配Unicode字符 (3认同)