如何匹配不是字母,数字或空格的东西?

时间:2017-05-25 14:29:01

标签: ruby regex space alphanumeric

我使用的是Ruby 2.4。如何匹配不是字母,数字或空格的东西?我试过了

2.4.0 :004 > str = "-"
 => "-"
2.4.0 :005 > str =~ /[^[:alnum:]]*/
 => 0
2.4.0 :006 > str = " "
 => " "
2.4.0 :007 > str =~ /[^[:alnum:]]*/
 => 0

但是你可以看到它仍然匹配一个空格。

1 个答案:

答案 0 :(得分:1)

您的/[^[:alnum:]]*/模式匹配除字母数字字符以外的0个或多个符号。它将匹配空格。

要匹配除字母数字和空格以外的1个或多个字符,可以使用

/[^[:alnum:][:space:]]+/

使用带有相关POSIX字符类的否定括号表达式。