我试图在Java中创建正则表达式,以匹配某些字符串的第一次出现(让他们说A)以及所有后续出现的其他字符串(让' s说C)第一个。
例如:
XAXXAXXCXC
在这种情况下,应该产生以下匹配:
AC (position 1 and 7)
AC (position 1 and 9)
我已经部分成功地获得了积极的观察(见下文),但问题是它并不贪心,所以取而代之的是第4位的A而不是第一位:
(?<=(A).{0,20})C
答案 0 :(得分:1)
最后,我通过正反面观察的结合解决了这个问题。但是有一个限制,A必须在C之前到某个定义的长度(在这种情况下为20)。
(?<=(?<!A.{0,20})(A).{0,20})C