如何匹配不是字母、数字或 space 的内容?
How do I match something that is not a letter or a number or a space?
我正在使用 Ruby 2.4。如何匹配不是字母、数字或 space 的内容?我试过了
2.4.0 :004 > str = "-"
=> "-"
2.4.0 :005 > str =~ /[^[:alnum:]]*/
=> 0
2.4.0 :006 > str = " "
=> " "
2.4.0 :007 > str =~ /[^[:alnum:]]*/
=> 0
但如您所见,它仍然匹配 space。
您的 /[^[:alnum:]]*/
模式匹配 0 个或多个字母数字字符以外的符号。它将匹配空格。
要匹配除字母数字和空格以外的 1 个或多个字符,您可以使用
/[^[:alnum:][:space:]]+/
使用包含相关 POSIX 字符 类 的否定括号表达式。
我正在使用 Ruby 2.4。如何匹配不是字母、数字或 space 的内容?我试过了
2.4.0 :004 > str = "-"
=> "-"
2.4.0 :005 > str =~ /[^[:alnum:]]*/
=> 0
2.4.0 :006 > str = " "
=> " "
2.4.0 :007 > str =~ /[^[:alnum:]]*/
=> 0
但如您所见,它仍然匹配 space。
您的 /[^[:alnum:]]*/
模式匹配 0 个或多个字母数字字符以外的符号。它将匹配空格。
要匹配除字母数字和空格以外的 1 个或多个字符,您可以使用
/[^[:alnum:][:space:]]+/
使用包含相关 POSIX 字符 类 的否定括号表达式。