我在字符串之前和之后有HTML代码:
name="some_text_0_some_text"
我想用下面这样的代码替换0
:!NEW_ID!
所以我做了一个简单的正则表达式:
.*name="\w+(\d+)\w+".*
但我不知道如何专门替换捕获的块。
有没有办法将($1)这样的捕获结果替换为其他字符串?
结果将是:
name="some_text_!NEW_ID!_some_text"
发布于 2010-10-18 03:45:56
一种解决方案是为前面和后面的文本添加捕获:
str.replace(/(.*name="\w+)(\d+)(\w+".*)/, "$1!NEW_ID!$3")
发布于 2018-05-29 17:14:36
对Matthew的答案的一点改进可能是先行一步,而不是最后一个捕获组:
.replace(/(\w+)(\d+)(?=\w+)/, "$1!NEW_ID!");
或者你可以在小数点上拆分,然后用你的新id加入,如下所示:
.split(/\d+/).join("!NEW_ID!");
https://stackoverflow.com/questions/3954927
复制相似问题