Ruby =~ 检查字符串是否匹配模式

标签 ruby regex

我想检查一个字符串是否只由数字和字母组成。

  def valid?
    "abc#d" =~ /\p{Alnum}/
  end

但这会返回 0。我希望它返回 nil,因为它包含既不是字母也不是数字的 #

我做错了什么?

最佳答案

错误的是你实际上在检查:

  • 字符串是否包含任何数字或字母,

但你想检查:

  • 字符串是否只包含数字或字母。

你可以这样检查:

def valid?
  "abc#d" !~ /\P{Alnum}/
end

关于Ruby =~ 检查字符串是否匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366326/

相关文章:

mysql - 使用 parent_id 求和并分组

java - 从模式数组中查找并运行方法

c++ - 在 C++ 中有选择地替换 std::string 中的 (") 双引号

ruby - 使用 Rspec 断言 Ruby(Chef Recipe)中方法的返回值

regex - 使用 Perl 正则表达式查找井号 (#)

python - 无法在正则表达式中检测到 '-' 字符

Java 的 Matcher 无法正确匹配输入

ruby - 为什么字符串比较比整数比较快?

ruby-on-rails - 如何让这个 ruby​​ 方法不那么难看(嵌套)

ruby-on-rails - 如何更改 ruby​​ on rails 中的数据库模型?