我试图更好地熟悉Ruby Regex,我在我的一个codewars.com答案中得到了accros。
我目前对此正则表达式的理解如下。 \W
表示任何非单词字符。我假设 pipe 符号意味着在每个字符之间产生影响,我认为下划线意味着之间的所有下划线charecters
我甚至关闭了吗?所有批评都受到欢迎。谢谢。
/\W|_/
答案 0 :(得分:6)
在正则表达式中:/\W|_/
,垂直条只是一个“或”。在Ruby中,_
是一个单词字符(例如,abc_def
是Ruby中的有效单词),并且与{{{ 1}}。所以上面的正则表达式匹配非单词字符或下划线。您可以在rubular.com进行测试。
答案 1 :(得分:2)
是的,你基本上是正确的。正则表达式标记\W
将匹配任何非单词字符。管道符号 - 垂直条是alternation运算符,它告诉正则表达式引擎匹配交替运算符左边的所有内容,或右边的所有内容,在这种情况下,您匹配任何非单词字符或文字_
。
您可以在此处使用字符类,而不是使用替换:
/[\W_]/