提问人:Flo Ragossnig 提问时间:10/7/2022 最后编辑:tripleeeFlo Ragossnig 更新时间:10/7/2022 访问量:82
是否可以仅在匹配组中替换 - REGEX
Is it possible to replace only in a match group - REGEX
问:
我一直试图避免,因为我根本无法弄清楚它是如何工作的。大多数时候,我设法通过运气而不是实际技能来获得预期的结果。regex
但是,我正在尝试用 or 替换捆绑的 webpack 源代码中的任何空格字符(结果更容易)。但是在我尝试在实际源上执行此操作之前,我想了解我尝试执行的正则表达式。string-replace-loader
String-Replace-Plugin
问题
我的查询字符串总是以后面跟着一些和其他空格字符开头。如果我匹配这个,我已经设法在测试字符串中删除了我的空格字符dqlParse
\n
\t
/\s+\s/g
并简单地将其替换为 ." "
由于我无法控制捆绑包中的所有字符串,因此我想我可以通过在字符串前面添加来指示要替换的字符串,然后匹配并按组替换。不幸的是,到目前为止没有运气。dqlParse
我尝试过什么
到目前为止,我已经尝试过这样的事情
/(^dqlParse)(.*)/g
它基本上做了它应该做的事情,因为匹配组是,匹配组是我想进行替换的字符串的其余部分。$1
dqlParse
$2
是否可以只在第二个匹配组中替换?
谢谢!任何帮助表示赞赏!
答:
0赞
Wiktor Stribiżew
10/7/2022
#1
是的,您可以使用以下方法做到这一点:String#replace
text = text.replace(/^(dqlParse)(.*)/g, function(_, x, y) {return x + y.replace(/\s{2,}/g, ' ');})
这将匹配并捕获到组 1(回调函数中的变量)中,其余行将被捕获到组 2(在回调函数中)。因此,一旦找到匹配项,替换将是 and 的串联,所有两个或多个空格块都替换为一个空格。dqlParse
x
y
x
y
评论
1赞
Flo Ragossnig
10/8/2022
谢谢!我会尝试这是否适用于任何一个扩展并回复您!🙌
上一个:将正则表达式替换对转换为单个替换
评论
string-replace-loader
String-Replace-Plugin