javascript - 正则表达式匹配 A、AB、ABC,但不匹配 AC。 ("starts with")

标签 javascript regex

我正在用头撞墙。我想要一个匹配的正则表达式:空字符串、AABABC,但不匹配 AC。我有这个,它有效:

/^(A|AB|ABC)?$/

但这只是一种简化;在我的应用程序中,ABC实际上是长字符类,所以我不想一遍又一遍地重复它们。也许我只是没有以正确的方式看待它。我试过这个:

/^((AB?)C?)?$/

但这仍然匹配 AC

是否有更简单的方法来做到这一点,可以扩展到(例如)ABCDABCDE 等?

编辑:通过扩展到ABCDE,我的意思是它将匹配:空字符串,AABABCABCDABCDE。基本上,“以”正则表达式开头。

最佳答案

尝试这个正则表达式:

^(A(B(C)?)?)?$

我认为您可以看到该模式并将其扩展为 ABCDABCDE,如下所示:

^(A(B(C(D)?)?)?)?$
^(A(B(C(D(E)?)?)?)?)?$

现在每个部分都依赖于前面的部分(B 依赖于 AC 依赖于 B,等等)。

关于javascript - 正则表达式匹配 A、AB、ABC,但不匹配 AC。 ("starts with"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758466/

相关文章:

Python正则表达式提取字符串末尾的可选数字

python - 在 Python 中提取正则表达式匹配的正确方法是什么?

javascript - 为什么要播放音频的此Javascript代码需要在前面具有alert()才能起作用?

JavaScript 设置变量?

javascript - FineUploader 按钮文本

jquery - 正则表达式或

java - Groovy - 正则表达式将字符串与最后一个字符数字匹配

javascript正则表达式分割不跨浏览器

javascript - 从单选组中获取选定的单选按钮 (ExtJS)

javascript - 尝试对 Canvas 中的形状进行动画处理,它会显示,但不会移动