解决方法
使用Unicode或POSIX字符类
要验证字符串是否仅匹配字母数字文本,您可以使用锚定字符类.例如:
# Use the Unicode class. 'foo' =~ /\A\p{Alnum}+\z/ # Use the POSIX class. 'foo' =~ /\A[[:alnum:]]+\z/
锚定是必不可少的
锚定表达式的重要性不容小觑.如果没有锚定,以下情况也是如此:
"\nfoo" =~ /\p{Alnum}+/ "!foo!" =~ /\p{Alnum}+/
这不太可能是你所期望的.