3

我在 Rubular.com 和我的带有 Ruby 1.9.2 的 VM Linux 上尝试相同的超级简单正则表达式我不知道为什么我得到不同的输出:VM:

my_str = "Madam Anita"
puts my_str[/\w/]

这个输出:女士

在 Rubular 上它输出:MadamAnita Rubular: http ://www.rubular.com/r/qyQipItdes

我很想得到一些帮助。我卡在这里。我将无法为 hw1 测试我的代码。

4

2 回答 2

4

不,它不是真的。它匹配“女士”和“安妮塔”中的所有字符,但不匹配空格。您遇到的问题是my_str[/\w/]仅返回给定正则表达式的单个匹配项,而 Rubular 突出显示所有可能的匹配项。

如果您需要所有事件,您可以这样做:

1.9.3p194 :002 > "Madam Anita".scan(/\w+/)
 => ["Madam", "", "Anita", ""] 
于 2012-10-07T00:39:19.580 回答
3

实际上,\w匹配单个字符。Rubular 中的结果包含相邻字符之间的空格来告诉您这一点(尽管我希望它们也能使突出显示更明显......)。与匹配的输出进行比较\w+,匹配两个字符串 (MadamAnita)。

于 2012-10-07T00:40:06.250 回答