Dan*_*owe 15
方括号[]表示字符类.字符类将匹配其中的任何内容.
\w是一个叫做"单词字符"的特殊类.这是简写[a-zA-Z0-9_],所以它将匹配:
a-z (全小写字母)A-Z (全部大写字母)0-9 (所有数字)_ (下划线)你要问[\w-]的课程是一个由\w和组成的课程-.所以它将匹配上面的列表,加上连字符(-).
正如所写,[\w-]这个正则表达式将匹配单个字符,只要它在上面的列表中,或者是破折号.
如果你要在末尾添加量词,例如[\w-]*或[\w-]+,那么它将匹配任何这些字符串:
fooBar9
foo-Bar9
foo-Bar-9
-foo-Bar---9abc__34ab12d
Run Code Online (Sandbox Code Playgroud)
它会部分匹配这些:
foo,Bar9 # match 'foo' - the ',' stops the match
-foo-Bar---9*bc__34ab12d # match '-foo-Bar---9', the '*' stops the match
Run Code Online (Sandbox Code Playgroud)
\w Any word character (letter, number, underscore)
Run Code Online (Sandbox Code Playgroud)
这是我认为它正在做的事情:转到Rubular并尝试如下:
正则表达式_1/\w-/
String : f-oo
Run Code Online (Sandbox Code Playgroud)
regext_1 只会匹配并且会在忽略任何 .. 字符串的其余部分f- 时停止-\woo
然而 :
正则表达式_2 /[\w-]/
string : f-oo
Run Code Online (Sandbox Code Playgroud)
regex_2 将匹配整个字符串加上特殊字符 - .. f-oo
.. 另外,还测试了类似 的字符串的情况f-1oo,第二个正则表达式在 因此停止了匹配f-,-后面跟着一个\d
=========
我相信 [] 的全部意义在于继续匹配 before 和 after -。这是我尝试过的一些变化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"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12954 次 |
| 最近记录: |