我正在使用正则表达式,这个工作断言对我来说没有意义:
assert_equal " = ", "variable_1 = 42"[/\W+/]
在我看来,答案应该是= 42
。
执行/\w+/
会给variable_1
。你否定了这一点,你留下了= 42
。在只有42
的字符串中,执行/w+/
并不会删除它,所以我不明白为什么它会从我的示例中的字符串中删除。
/\w+/
排在第一位,那么42
也会提供42
,而在我$ pacman -Qs | grep "alsa"
的例子中,它实际上会将其删除。
以下答案链接到这里有助于: http://rubular.com/
答案 0 :(得分:4)
请注意\W+
匹配一个或多个非字字符([A-Za-z0-9_]
除外),因此,匹配的值为 =
,而不是= 42
(请参阅{{ 3}})。
在assert_equal
中,您不会替换,但匹配非单词字符的单个子字符串。请参阅IDEONE demo。
请参阅this regex demo:
如果提供了Regexp,则会返回字符串的匹配部分。