需要了解这个Ruby Regex代码

时间:2015-07-23 23:41:25

标签: ruby regex

我试图更好地熟悉Ruby Regex,我在我的一个codewars.com答案中得到了accros。

我目前对此正则表达式的理解如下。 \W表示任何非单词字符。我假设 pipe 符号意味着在每个字符之间产生影响,我认为下划线意味着之间的所有下划线charecters

我甚至关闭了吗?所有批评都受到欢迎。谢谢。

/\W|_/

2 个答案:

答案 0 :(得分:6)

在正则表达式中:/\W|_/,垂直条只是一个“或”。在Ruby中,_是一个单词字符(例如abc_def是Ruby中的有效单词),并且与{{{ 1}}。所以上面的正则表达式匹配非单词字符或下划线。您可以在rubular.com进行测试。

答案 1 :(得分:2)

是的,你基本上是正确的。正则表达式标记\W将匹配任何非单词字符。管道符号 - 垂直条是alternation运算符,它告诉正则表达式引擎匹配交替运算符左边的所有内容,或右边的所有内容,在这种情况下,您匹配任何非单词字符或文字_

您可以在此处使用字符类,而不是使用替换:

/[\W_]/