我已经用 if else 和 count 解决了,但如果你有一些解决方案来检查一个单词是否超过一个字符,我真的很想知道。
我想检查给定的任何字符串是否必须是 a、b 或 c。如果是 aaa、ab、cc、dd,它将失败。
就像我之前说的那样,我已经有了解决方案,但是使用 if's 我想将 regexp 与 ruby 一起使用。
谢谢。
这个可以做到只匹配一个字符:
^[a-zA-Z]$
如果您也想不匹配任何字符,只需使用:
^[a-zA-Z]?$
def lengthGreaterThan1?(str)
if str =~ /.{2,}|^$/
return "yes"
else
return "no"
end
end
假设您将一个字符串传递给此函数,没有单词分隔符,它只会匹配长度为 1 的字符串。
请注意,/^$/
匹配空白字符串并且字符串“a b”失败。
要匹配“a”、“b”或“c”,但仅此而已,您可以使用以下正则表达式:
/^[abc]$/
要检查字符串是否为空或包含除单个“a”、“b”或“c”以外的任何内容,这应该可以解决问题:
/^$|[^abc]|.{2,}/
根据您要允许的字符,您可能需要替换[abc]
和[^abc]
部分。例如,允许使用整个(小写)字母表将需要以下字符类:[a-z]
, [^a-z]
.