我有一个字符串,我想将该字符串中的## @@ ## @@替换为使用正则表达式的回车换行符。
我一直在尝试,但没有太多运气。我的表达式显示完整的文本。
表达式: /^.*(##@@##@@).*$/g
字符串:这是我的名字## @@ ## @@ ## @@ ## @@和身份
代码:str = str.replace(/ ^。(## @@ ## @@)。 $ / g,'\ r \ n');
我如何实现我想要做的事情?
答案 0 :(得分:2)
你工作太辛苦了。 :-)丢失^.*
和.*$
:
var str = "This is my name ##@@##@@ ##@@##@@ and identity";
str = str.replace(/##@@##@@/g, '\r\n');
console.log(str);
str.replace(/##@@##@@/g, '\r\n')
说“将##@@##@@
中的字符串str
替换为\r\n
”。在该示例中,您最终会使用两个替换(之间有空格),因为它会发生两次。
如果你想忽略事件之间的空格并用一个 ##@@##@@ ##@@##@@
替换slike \r\n
,那么我们需要稍微调整一下:
var str = "This is my name ##@@##@@ ##@@##@@ and identity";
str = str.replace(/(?:##@@##@@\s*)+/g, '\r\n');
console.log(str);
.replace(/(?:##@@##@@\s*)+/, '\r\n')
说:“使用##@@##@@
替换一个或多个\s
后跟可选空格(*
=空格,\r\n
=可选)。 “ (?:...)
将它们组合在一起,以便+
(“最后一项中的一项或多项”)可以应用于整个事物。这是一个非捕获组。