Javascript 相互匹配多个可选字符
我想匹配Javascript 相互匹配多个可选字符,javascript,regex,Javascript,Regex,我想匹配substitute的所有有效前缀,后跟其他字符,以便 sub/abc/def与sub零件匹配 substitute/abc/def与substitute零件匹配 subt/abc/def不匹配或仅匹配sub部分,而不是t 我当前的正则表达式是/^s(u(b)(s(t)(i(t)(u(te?)吗?)/),它可以工作,但这似乎有点冗长 有没有更好的方法(例如,不太冗长的方法)来实现这一点?这将与您在问题中提到的方法相同 ^s(?:ubstitute|ubstitut|ubstitu|u
substitute
的所有有效前缀,后跟其他字符,以便
与sub/abc/def
零件匹配sub
与substitute/abc/def
零件匹配substitute
不匹配或仅匹配subt/abc/def
部分,而不是sub
t
/^s(u(b)(s(t)(i(t)(u(te?)吗?)/
),它可以工作,但这似乎有点冗长
有没有更好的方法(例如,不太冗长的方法)来实现这一点?这将与您在问题中提到的方法相同
^s(?:ubstitute|ubstitut|ubstitu|ubstit|ubsti|ubst|ubs|ub|u)?
上面的正则表达式将始终尝试匹配可能的大单词。因此,首先它检查substitute
,如果它找到任何,那么它将进行匹配,否则它将跳转到下一个模式,即substitute
,同样,它将跳转到u
您可以使用两步正则表达式
^(\w+)
替换
使用交替运算符。@AvinashRaj如何使用<代码>s | su | sub | subs | substit | substit | substitu | substitut | substitut | substitut | substitute | substitut | substitut | substitute | substitute | substitute | substitute | substitute | substitute | | | | substitu u | | | | | | | | | substitu,但它几乎是字符数的两倍。@jazzpi i刚刚提供了一个替代方案。对我们来说,编写像我一样的正则表达式可能很容易,但是你的正则表达式太难了,它包含许多捕获组,许多可选的量词
?
。。此外,您可以将ub | u
减少到ub?
,除非有人提出正则表达式,否则我认为这是一种方法。我认为Regex对2来说有点过分了。虽然,像string.indexOf()这样的东西应该足够了。但是subt
不会匹配substitute
@AvinashRaj,它是基于原始的postsubt/abc/def不匹配。
但是你是对的。我想我的问题不是很清楚。对我来说,匹配与否并不重要。