【发布时间】:2021-07-19 20:25:02
【问题描述】:
假设我有一串只有 a 和 b 的字符串,如下所示:
aaabbbbababab
如何构造一个正则表达式,只有当第二个和最后一个字符不同时才匹配给定的字符串?
这是我目前的尝试,完全相反(例如,如果第二个和最后一个字符相同,则匹配):
^[ab]([ab])[ab]*\1$
我正在使用正则表达式的 ECMAScript 实现。
【问题讨论】:
-
ab重要吗?正则表达式是否还需要验证这些是字符串中仅有的 2 个字符? -
是的,如果第二个字符是
a,那么最后一个字符必须是b,而不是其他字符。 -
哦,好吧,所以stackoverflow.com/a/67267084/2191572 是正确的,但如果
ab不重要,我确实提供了一个通用的解决方案。 -
您是否也需要允许单个字符,例如“a”?也许你可以试试:
^(?!.(.).*\1$)[ab]+$ -
不,我希望字符串的长度 > 2
标签: javascript regex regex-lookarounds regex-negation