我在Rubular.com和我的VM Linux上尝试了相同的超级简单的正则表达式,使用的是Ruby 1.9.2。我不知道为什么会得到不同的输出:
my_str = "Madam Anita"
puts my_str[/\w/]
此代码输出: Madam
在 Rubular 上输出为: MadamAnita Rubular: http://www.rubular.com/r/qyQipItdes
我需要帮助,卡在这里了。我将无法测试我的 hw1 代码。
我在Rubular.com和我的VM Linux上尝试了相同的超级简单的正则表达式,使用的是Ruby 1.9.2。我不知道为什么会得到不同的输出:
my_str = "Madam Anita"
puts my_str[/\w/]
此代码输出: Madam
在 Rubular 上输出为: MadamAnita Rubular: http://www.rubular.com/r/qyQipItdes
我需要帮助,卡在这里了。我将无法测试我的 hw1 代码。
my_str[/\w/]
只返回给定正则表达式的单个匹配项,而Rubular会突出显示所有可能的匹配项。1.9.3p194 :002 > "Madam Anita".scan(/\w+/)
=> ["Madam", "", "Anita", ""]
实际上,\w
匹配 一个字符。Rubular 的结果在相邻字符之间包含了空格,以便告诉你这一点(虽然我希望他们也可以使高亮更明显一些...)。与使用\w+
匹配的输出进行比较,该表达式匹配了两个字符串(Madam
和 Anita
)。
\w+
代替空组通常没有太大用处。 - nneonneo