捕获围绕正则匹配的文字.NET

  • 本文关键字:文字 NET c# .net regex
  • 更新时间 :
  • 英文 :


我正在构建一个应用程序,我需要在比赛前后捕获角色。这似乎可以正常工作,除非周围捕获中有多个匹配。

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)

最新更新