匹配正则表达式条件

时间:2016-06-10 10:23:04

标签: javascript regex

我有一个字符串,我想将该字符串中的## @@ ## @@替换为使用正则表达式的回车换行符。

我一直在尝试,但没有太多运气。我的表达式显示完整的文本。

表达式: /^.*(##@@##@@).*$/g

字符串:这是我的名字## @@ ## @@ ## @@ ## @@和身份

代码:str = str.replace(/ ^。(## @@ ## @@)。 $ / g,'\ r \ n');

我如何实现我想要做的事情?

1 个答案:

答案 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 =可选)。 “ (?:...)将它们组合在一起,以便+(“最后一项中的一项或多项”)可以应用于整个事物。这是一个非捕获组。