这是一个通用的正则表达式问题,我也找不到答案。
假设我有一些输入字符串:
...A-A-B...
...B-A-A...
...A-B-A...
...B-B-A...
我有两个分隔符A
和B
. 我想做的是找到其中一个,然后再寻找另一个。现在我知道我可以做到(A.*B)|(B.*A)
这将匹配我想要的所有四个字符串。
我也可以(A|B).*\1
匹配A-A
第一个和第二个字符串,A-B-A
第三个和B-B
最后一个字符串。
我可以做一些类似的事情(A|B).*[^\1]
,找到两个令牌中的一个然后找到另一个令牌吗?
对于上下文,我对此很感兴趣,因为这个问题,在哪里A
和B
是用于货币匹配的点或逗号,但我认为这在很多情况下可能很有用,因此是通用问题。