在ruby中使用正则表达式确保字符串不包含数字?

在ruby中使用正则表达式确保字符串不包含数字?,ruby,regex,Ruby,Regex,嗨 如何使用ruby中的正则表达式确保字符串不包含数字 谢谢\D是字符类,意思是“不是数字”,所以您可以这样做 ^\D*$ ^强制它从行首开始,$强制它继续到行尾。\D是表示“非数字”的字符类,因此您可以这样做 ^\D*$ ^强制它从行首开始,$强制它继续到行尾。您可以扫描任何数字,然后使用~在找不到时匹配 '1234' !~ /\d/ # => false '12.34' !~ /\d/ # => false 'abc1def'

如何使用ruby中的正则表达式确保字符串不包含数字


谢谢

\D是字符类,意思是“不是数字”,所以您可以这样做

^\D*$

^强制它从行首开始,$强制它继续到行尾。

\D是表示“非数字”的字符类,因此您可以这样做

^\D*$

^强制它从行首开始,$强制它继续到行尾。

您可以扫描任何数字,然后使用
~在找不到时匹配

'1234'          !~ /\d/  # => false
'12.34'         !~ /\d/  # => false
'abc1def'       !~ /\d/  # => false
'a1b2c3d'       !~ /\d/  # => false
'12abc'         !~ /\d/  # => false
'abc12'         !~ /\d/  # => false
'oi9'           !~ /\d/  # => false
'abc'           !~ /\d/  # => true
'ABC'           !~ /\d/  # => true
'aBcD'          !~ /\d/  # => true
''              !~ /\d/  # => true
'日本語'         !~ /\d/  # => true
'~!@#%^&*()}'   !~ /\d/  # => true

您可以扫描任何数字,然后使用
~在找不到时匹配

'1234'          !~ /\d/  # => false
'12.34'         !~ /\d/  # => false
'abc1def'       !~ /\d/  # => false
'a1b2c3d'       !~ /\d/  # => false
'12abc'         !~ /\d/  # => false
'abc12'         !~ /\d/  # => false
'oi9'           !~ /\d/  # => false
'abc'           !~ /\d/  # => true
'ABC'           !~ /\d/  # => true
'aBcD'          !~ /\d/  # => true
''              !~ /\d/  # => true
'日本語'         !~ /\d/  # => true
'~!@#%^&*()}'   !~ /\d/  # => true

我必须查找一个引用以查看\D是否存在,我知道它确实存在!老实说,我认为[^0-9]更具可读性。一般来说,如果有匹配器,我会同意,因为如果有其他语言的英文字符映射到其他Unicode字符,那么匹配器应该理解并能够处理。我不知道该语言是否使用其他字符作为数字,但如果使用,则\d和\d也将正确,而[0-9]和[^0-9]将不正确。我必须查找引用以查看\d是否存在,我知道它确实存在!老实说,我认为[^0-9]更具可读性。一般来说,如果有匹配器,我会同意,因为如果有其他语言的英文字符映射到其他Unicode字符,那么匹配器应该理解并能够处理。我不知道语言是否使用其他字符作为数字,但如果使用,则\d和\d也将正确,其中[0-9]和[^0-9]将不正确。