我想检查一个字符串是否只匹配一些带有正则表达式的字符。
例如,我只想匹配a
、b
或c
。
所以,“aaacb”会通过,但“aaauccb”不会(因为u
)。
我试过这样:
/[a|b|c]+/
但它不起作用,因为失败的例子通过了。
您需要通过将正则表达式锚定到字符串的开头和结尾来确保您的字符串仅包含这些字符:
/^[abc]+$/
您还混淆了两个概念。交替(这将是(a|b|c)
)和字符类(这将是[abc]
)。在这种情况下,它们是等效的。你的版本也允许|
作为一个角色。
/[^abc]/
是一个从 rubular 中抄袭的例子。它匹配任何单个字符,除了:a、b 或 c
试试 [abc]+
它将匹配 a、b 或 c。