![](/img/trans.png)
[英]JS regex to replace empty lines within SCSS between closing curly brace and opening class/id
[英]JS Regex: How to replace lines of text within a specific area?
做一些文本操作,我需要一个正则表达式,它将在以下文本的第一组而不是第二组中找到每个缩进的行:
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'
将在所有行上执行替换,但是我不知道如何将其限制为仅第一组。
Javascript(或其他任何风味)正则表达式能够做到这一点吗? 也就是说, 仅在连续匹配的集合前面有“定义”匹配时才进行操作?
首先提取适合替换的文本部分:
var a_parts
, s_orig
, s_final
, s_sep
;
s_orig = <from_whatever_source>;
s_sep = "Second group of lines are below:";
a_parts = s_orig.split(s_sep);
// Substitute on a_parts[0], leave a_parts[1] untouched.
s_final =
a_parts[0].replace(/^(- \w+ )(\d)(.*)/g,'\1A\2')
+ s_sep
+ a_parts[1]
;
该方法以一种简单明了的方式概括到将被不同地对待的更多部分。 请注意, .split
的参数可能是正则表达式,因此您可以指定节分隔符的替代形式。
这有点类似于“定义匹配”的概念,引入(通常是:定界)原始字符串的相关部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.