我有一个字符串,我想使用正则表达式将该字符串中的##@@##@@ 替换为回车换行符。
我一直在努力,但运气不佳。我的表达式显示完整的文本。
表达式: /^.*(##@@##@@).*$/g
字符串:这是我的名字##@@##@@ ##@@##@@和身份
代码:str = str.replace(/^.(##@@##@@).$/g, '\r\n');
我怎样才能实现我想做的事情?
最佳答案
你太辛苦了。 :-) 丢失 ^.*
和 .*$
:
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
”。在该示例中,您最终得到了两个 替换(中间有一个空格),因为它出现了两次。
如果你想忽略事件之间的空格并用 ##@@##@@ ##@@##@@
替换类似 one \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
。” (?:...)
将它组合在一起,以便 +
(“一个或多个最后一件事”)可以应用于整个事情。这是一个非捕获组。
关于javascript - 匹配正则表达式条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37745819/