Ruby 正则表达式[\w-]是什么意思?
我查看了文档,找不到Ruby 正则表达式[\w-]是什么意思?,ruby,regex,Ruby,Regex,我查看了文档,找不到[\w-]的含义。有人能告诉我在Ruby中[\w-]是什么意思吗 \w Any word character (letter, number, underscore) 以下是我认为它正在做的事情:转到并按如下方式尝试: 正则表达式1/\w-/ String : f-oo regext_1将只匹配f-,并将在-处停止,忽略任何\w。。字符串的其余部分oo 鉴于: 正则表达式2/[\w-]/ string : f-oo regex_2将匹配整个字符串加上特殊字符-f-o
[\w-]
的含义。有人能告诉我在Ruby中[\w-]
是什么意思吗
\w Any word character (letter, number, underscore)
以下是我认为它正在做的事情:转到并按如下方式尝试:
正则表达式1/\w-/
String : f-oo
regext_1将只匹配f-
,并将在-
处停止,忽略任何\w
。。字符串的其余部分oo
鉴于:
正则表达式2/[\w-]/
string : f-oo
regex_2将匹配整个字符串加上特殊字符-<代码>f-oo
。。另外,测试了字符串类似于f-1oo
的情况,第二个正则表达式在f-
处停止匹配,因此,-
后面跟着一个\d
==========
我相信[]的全部要点是在-
之前和之后继续匹配。以下是我从irb尝试的一些变体。
irb(main):004:0> "blah-blah".scan(/\w-/)
=> ["h-"]
irb(main):005:0> "blah-blah".scan(/[\w-]/)
=> ["b", "l", "a", "h", "-", "b", "l", "a", "h"]
irb(main):006:0> "blah-blah".scan(/\w-\w/)
=> ["h-b"]
irb(main):007:0> "blah-blah".scan(/\w-\w*$/)
=> ["h-blah"]
irb(main):008:0> "blah-blah".scan(/\w*-\w*$/)
=> ["blah-blah"]
方括号
[]
表示字符类。字符类将匹配其中的任何内容
\w
是一个称为“单词字符”的特殊类。它是[a-zA-Z0-9.]
的缩写,因此它将匹配:
(所有小写字母)a-z
(所有大写字母)A-Z
(所有数字)0-9
(下划线)
[\w-]
,是一个由\w
和-
组成的类。因此它将匹配上面的列表,加上连字符(-
)
正如所写的那样,[\w-]
,这个正则表达式将匹配单个字符,只要它在上面的列表中,或者是破折号
如果要在末尾添加一个量词,例如[\w-]*
或[\w-]+
,则它将匹配以下任何字符串:
fooBar9
foo-Bar9
foo-Bar-9
-富吧-9abc_uuu34AB12D
它将部分匹配这些:
foo,Bar9#匹配“foo”-停止匹配
-foo-Bar--9*bc_uu34ab12d#match'-foo-Bar--9',该'*'停止比赛
关闭-[]
的目的是扩展\w
的含义,使其也包括-
字符。谢谢,是的,[]是在字母数字符号或连字符之前和之后找到匹配的字符