我在Rubular.com和我的VM Linux上使用Ruby1.9.2尝试了相同的超级简单的正则表达式。我不知道为什么我得到了不同的输出: VM:
my_str = "Madam Anita"
puts my_str[/\w/]输出如下:女士
在规则上,它输出: MadamAnita规则:http://www.rubular.com/r/qyQipItdes
我想要一些帮助。我被困在这里了。我将无法为hw1测试我的代码。
发布于 2012-10-07 08:39:20
不,它不是真的。它匹配“女士”和“安妮塔”中的所有字符,但不匹配空格。您遇到的问题是,对于给定的正则表达式,my_str[/\w/]只返回一个匹配项,而Rubular会突出显示所有可能的匹配项。
如果需要所有匹配项,可以执行以下操作:
1.9.3p194 :002 > "Madam Anita".scan(/\w+/)
=> ["Madam", "", "Anita", ""] 发布于 2012-10-07 08:40:06
实际上,\w只匹配一个字符。在Rubular中的结果在相邻字符之间包含空格来告诉你这一点(尽管我希望它们也能使突出显示更明显……)。与匹配两个字符串(Madam和Anita)的匹配\w+的输出进行比较。
https://stackoverflow.com/questions/12765097
复制相似问题