Ruby 红宝石字母数字校验

Ruby 红宝石字母数字校验,ruby,regex,Ruby,Regex,我想检查Ruby中的变量foo是否为非空且为字母数字。我知道我可以遍历每个字符并进行检查,但这是更好的方法吗?使用Unicode或POSIX字符类 要验证字符串是否仅与字母数字文本匹配,可以使用锚定字符类。例如: # Use the Unicode class. 'foo' =~ /\A\p{Alnum}+\z/ # Use the POSIX class. 'foo' =~ /\A[[:alnum:]]+\z/ 锚定是必不可少的 锚定你的表达方式的重要性怎么强调都不为过。如果没有锚定,以下

我想检查Ruby中的变量
foo
是否为非空且为字母数字。我知道我可以遍历每个字符并进行检查,但这是更好的方法吗?

使用Unicode或POSIX字符类 要验证字符串是否仅与字母数字文本匹配,可以使用锚定字符类。例如:

# Use the Unicode class.
'foo' =~ /\A\p{Alnum}+\z/

# Use the POSIX class.
'foo' =~ /\A[[:alnum:]]+\z/
锚定是必不可少的 锚定你的表达方式的重要性怎么强调都不为过。如果没有锚定,以下情况也是正确的:


这不太可能是您所期望的。

+1这考虑了
A-Za-z0-9
之外的各种字符,这是一件好事。运算符
=~
做什么?“我以前从未见过它。”米卡。它是正则表达式模式匹配运算符。有关此运算符的详细信息,请参阅或。
"\nfoo" =~ /\p{Alnum}+/
"!foo!" =~ /\p{Alnum}+/