正则表达式匹配字符的第n(第5)和第n(第6)次迭代之间的字符串

时间:2017-10-05 18:14:36

标签: regex

下午好 - 我整个上午一直在寻找一种将这种表达方式结合在一起的方法,并且没有多少运气,所以我来到社区......

我有一个日志文件,其中包含数万行,我需要在","的第5和第6次迭代之间提取字符串。分隔器。这是字符串:

第2850行:第67563行:BunchOfText,BunchOfText:BunchOfText,46.2,11637,42.2,2512,1516

我需要获得价值" 2512"超出这个字符串。 这就是我现在正在使用的东西,但是NotePad ++想要捕捉到第5个","但RegEx伙伴说这有效:

^(?:[^,]*\,){5}([^,]*)

有人可以帮帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您的问题可以通过此处提出的另一个问题来解答。这是一个链接和摘录 从解决方案Returning only part of match from Regular Expression

中被盗

您还可以尝试“环视”的概念。这是一种零宽度断言,意味着它将匹配字符,但不会在结果中捕获它们。 在您的情况下,我们可以采取积极的观察:我们希望目标字符串“firstname.surname”背后的内容等于“用户名:”。 正向后观运算符:(?< = StringBehind)StringWeWant

所以我认为您的解决方案可以使用(?< = 。,。,。,。,。,) [ ^,]

我没有尝试我建议的最终答案,但我希望你有这个想法:D

我想你在寻找?< =而不是?: