【发布时间】:2015-03-11 07:32:15
【问题描述】:
做一些文本操作,我需要一个正则表达式,它会在下面的文本的第一组中找到每个缩进的行,但不是第二组:
First group of lines are below:
- line 1
- line 2
- line 3
Second group of lines are below:
- line 1
- line 2
- line 3
例如,我想在数字前插入一个“A”,但只在第一组。所以我得到:
- line A1
- line A2
- line A3
但同样仅在第一组中,即使第二组的行是相同的。只需执行.replace(/^(- \w+ )(\d)/,'\1A\2' 将在 all 行上执行替换,但我不知道如何将其限制为仅第一组。
Javascript(或任何其他风格)正则表达式能够做到这一点吗?也就是说,只有在集合前面有一个“定义”匹配时才对一组连续匹配进行操作?
【问题讨论】:
-
我认为你需要改变解决问题的方法,并提出一个问题:每个组有什么不同? ,也许尝试将“组”作为参数作为通用函数可以提供帮助
-
在 JavaScript 中,您不支持后视。在 C# 中,您可以使用此正则表达式: (?myregextester.com/?r=cee4c867。要使其在 JavaScript 中工作,您必须尝试后视转换。看看stackoverflow.com/questions/641407/… [Javascript:消极的后视等效?]
-
谢谢你的回答,我知道它可以用代码完成,但我特别想知道它是否可以单独使用正则表达式来实现。
标签: javascript regex