我使用的是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
但是你可以看到它仍然匹配一个空格。
答案 0 :(得分:1)
您的/[^[:alnum:]]*/
模式匹配除字母数字字符以外的0个或多个符号。它将匹配空格。
要匹配除字母数字和空格以外的1个或多个字符,可以使用
/[^[:alnum:][:space:]]+/
使用带有相关POSIX字符类的否定括号表达式。