考虑这个正则表达式:/^(B|C|AB|AC|BC|ABC)$/
。它仅接受包含 B
或 C
(包括 or)的字符串,可以选择在前面加上 A
。虽然它工作得很好,一一列出了所有接受的字符串,但它显然不是一个非常可扩展的解决方案,特别是考虑到 A
、B
和 >C
可以替换更长的短语。我的问题是:有没有办法编写一个等效的正则表达式,其中 A
、B
和 C
仅出现一次?
最佳答案
/^(B|C|AB|AC|BC|ABC)$/
直接相当于
/^(A(?:BC?|C)|BC?|C)$/
其中后者的速度大约快 10 倍。
关于javascript - 有没有更聪明的方法来编写这个正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58149468/