如何只匹配一些正则表达式的字符?

时间:2012-10-24 14:53:01

标签: ruby regex

我想检查一个字符串是否只匹配一些带有正则表达式的字符。

例如,我只想匹配abc

所以,“aaacb”会通过,但“aaauccb”不会(因为u)。

我试过这种方式:

/[a|b|c]+/

但它不起作用,因为失败的例子通过了。

3 个答案:

答案 0 :(得分:8)

您需要通过将正则表达式锚定到字符串的开头和结尾来确保您的字符串包含这些字符:

/^[abc]+$/

你也混淆了两个概念。轮换(可能是(a|b|c))和角色类(将是[abc])。它们在这种情况下是等价的。您的版本也允许|作为角色。

答案 1 :(得分:0)

 /[^abc]/

是来自rubular的案例复制示例。它匹配任何单个字符,除了:a,b或c

答案 2 :(得分:-1)

尝试[abc] +

它将匹配a,b或c。