我正在构建一个应用程序,我需要在比赛前后捕获角色。这似乎可以正常工作,除非周围捕获中有多个匹配。
REGEX:
.{0,10}(?=abc)
在找到字符串" ABC"之前,最多应该捕获10个字符。
如果在上一篇文本中发生了匹配的复发,则出现问题:
"qqqqabcabcqqq"
在上面的文本中,我希望两个捕获:
qqqq (the 4 characters before the first abc occurrence)
qqqqabc (the 7 characters before the second abc occurrence)
我不是,但是获得了这些比赛。我得到的唯一匹配是:
qqqqabc
我敢肯定我缺少什么,但是我不确定什么。我相信我的正则是某种程度上太贪婪了,因此它可以俯瞰第一场比赛,而倾向于更大的第二场比赛。这是我需要的:
我需要一条以下等级:
1。是.net
2。在字符串中查看X字符的字符串中的精确匹配。
3。 4。丝毫不在乎这些字符是什么。 我向您保证,我尝试寻找类似的答案,但是我找不到任何直接回答这个问题的东西(这已经困扰了我两天。是的,我必须使用正则表达式)。至于Regex风味,我正在.net中工作。 非常感谢您的任何帮助。
这里是:
(?<=(?<CharsBefore>.{0,10}))(?=abc)
花了我一段时间来记住.NET允许具有可变性的正面外观。
REGEX TEST
c#
中的演示我更改了您的初始版本的工作方式。
希望它有帮助!
ps:我已经命名了小组,但是显然,如果您想要一个杂乱的正则表达式,那么您可以自由保持无名并与编号组一起工作,例如:
(?<=(.{0,10}))(?=abc)