正则表达式匹配,直到包含或不包含

时间:2018-10-16 07:03:47

标签: javascript regex match lookahead

我正在寻找一个正则表达式来查找从A开始,在BC处停止的子字符串。但是,当它为B时,不应包含B,但当它为C时,它应包含C

例如下面的文本:XXAXXXXBXX,那么它应该返回AXXXX,但是当它是XXAXXXXCXX时,它应该返回AXXXXC

我已经看过正面的前瞻性内容,但到目前为止还行不通。目前,我使用的是类似A.+(?=C|B)的东西,但是显然那是不对的:(有任何想法吗?

2 个答案:

答案 0 :(得分:2)

好吧,我已经找到答案了!我可以使用类似这样的内容:(A.+)((?=B)|C),它以A.+开头,一直匹配到C或前瞻性B(根本不包括B)。

答案 1 :(得分:1)

尝试以下模式:A[^BC]+C?

说明:它与A开始匹配,然后与BC[^BC]+)以外的一个或多个字符匹配,此后最多匹配一个C,如果不存在,则与其他任何内容都不匹配。

Demo

相关问题