【问题标题】:Ruby Regex Different from RubularRuby Regex 与 Rubular 不同
【发布时间】:2012-09-27 17:20:03
【问题描述】:

我正在 Rubular.com 和我的 VM Linux 上尝试使用 Ruby 1.9.2 的相同超级简单的正则表达式,但我不知道为什么会得到不同的输出: 虚拟机:

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

这个输出:女士

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

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

【问题讨论】:

    标签: ruby regex rubular


    【解决方案1】:

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

    如果您需要所有匹配项,您可以这样做:

    1.9.3p194 :002 > "Madam Anita".scan(/\w+/)
     => ["Madam", "", "Anita", ""] 
    

    【讨论】:

    • 改用\w+...空组通常没那么有用。
    【解决方案2】:

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

    【讨论】:

    • 感谢您的通知。我也想要一个更好的突出显示。
    猜你喜欢
    • 2014-06-30
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多