【发布时间】:2012-10-24 14:53:01
【问题描述】:
我想检查一个字符串是否只匹配一些带有正则表达式的字符。
例如,我只想匹配 a、b 或 c。
因此,“aaacb”会通过,但“aaauccb”不会(因为u)。
我试过这种方式:
/[a|b|c]+/
但它不起作用,因为失败的示例通过了。
【问题讨论】:
我想检查一个字符串是否只匹配一些带有正则表达式的字符。
例如,我只想匹配 a、b 或 c。
因此,“aaacb”会通过,但“aaauccb”不会(因为u)。
我试过这种方式:
/[a|b|c]+/
但它不起作用,因为失败的示例通过了。
【问题讨论】:
您需要通过将正则表达式锚定到字符串的开头和结尾来确保您的字符串仅包含这些字符:
/^[abc]+$/
您还混淆了两个概念。交替((a|b|c))和字符类([abc])。在这种情况下,它们是等效的。您的版本还允许 | 作为字符。
【讨论】:
/[^abc]/
是一个从rubular 抄袭的例子。它匹配任何单个字符,除了:a、b 或 c
【讨论】:
试试 [abc]+
它将匹配 a、b 或 c。
【讨论】: