-3

我已经用 if else 和 count 解决了,但如果你有一些解决方案来检查一个单词是否超过一个字符,我真的很想知道。

我想检查给定的任何字符串是否必须是 a、b 或 c。如果是 aaa、ab、cc、dd,它将失败。

就像我之前说的那样,我已经有了解决方案,但是使用 if's 我想将 regexp 与 ruby​​ 一起使用。

谢谢。

4

3 回答 3

0

这个可以做到只匹配一个字符:

^[a-zA-Z]$

如果您也想不匹配任何字符,只需使用:

^[a-zA-Z]?$
于 2012-10-09T02:25:42.833 回答
0
def lengthGreaterThan1?(str)
  if str =~ /.{2,}|^$/
    return "yes"
  else
    return "no"
  end
end

假设您将一个字符串传递给此函数,没有单词分隔符,它只会匹配长度为 1 的字符串。

请注意,/^$/匹配空白字符串并且字符串“a b”失败。

于 2012-10-09T05:37:10.847 回答
0

要匹配“a”、“b”或“c”,但仅此而已,您可以使用以下正则表达式:

/^[abc]$/

要检查字符串是否为空或包含单个“a”、“b”或“c”以外的任何内容,这应该可以解决问题:

/^$|[^abc]|.{2,}/

根据您要允许的字符,您可能需要替换[abc][^abc]部分。例如,允许使用整个(小写)字母表将需要以下字符类:[a-z], [^a-z].

于 2012-10-09T05:56:04.203 回答