Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 匹配除两个特定字符串以外的任何内容_Javascript_Regex - Fatal编程技术网

Javascript 匹配除两个特定字符串以外的任何内容

Javascript 匹配除两个特定字符串以外的任何内容,javascript,regex,Javascript,Regex,我正在尝试为JavaScript编写一个正则表达式,它匹配除两个特定字符串之外的任何内容 我不想匹配的两件事是“{{”和“{:”,正是这些 我写道: /^(?!{{|{:).*$/ 然而,将此表达式插入regex101中根本不会产生匹配结果。我哪里出了问题?我花了数小时浏览在线资源来获取此表达式,但我似乎不明白它为什么不起作用 作为参考,目标字符串为: {:say | x | Hi{{{x}}}:}匹配两个括号之间的所有内容:\{(.*)}$ 要匹配{:和:}\{:(.*?\:} 您的代码的修

我正在尝试为JavaScript编写一个正则表达式,它匹配除两个特定字符串之外的任何内容

我不想匹配的两件事是“{{”和“{:”,正是这些

我写道:

/^(?!{{|{:).*$/
然而,将此表达式插入regex101中根本不会产生匹配结果。我哪里出了问题?我花了数小时浏览在线资源来获取此表达式,但我似乎不明白它为什么不起作用

作为参考,目标字符串为:


{:say | x | Hi{{{x}}}:}

匹配两个括号之间的所有内容:
\{(.*)}$


要匹配{:和:}
\{:(.*?\:}


您的代码的修改版本(在一个引擎中工作,而在另一个引擎中没有!):
((?!{{{{{}:)+

以匹配两个括号之间的所有内容:
\{(.*)}$


要匹配{:和:}
\{:(.*?\:}


您的代码的修改版本(在一个引擎中工作,在另一个引擎中没有!):
((?!{{{{{{}:)+

如果正确解释问题,您可以使用
.replace()
替换为
RegExp
/{:{{2}/g

var str=“{:说{x}嗨{{{{x}}}:}”;
var res=str.replace(/{:{2}/g,”);

console.log(res);
如果正确解释问题,可以使用
.replace()
替换为
RegExp
/{:{{2}/g

var str=“{:说{x}嗨{{{{x}}}:}”;
var res=str.replace(/{:{2}/g,”);
console.log(res);
您可以使用

^.*({{|{:).*$
使用JavaScript中的负条件(
if
)语句。

您可以使用

^.*({{|{:).*$

使用JavaScript中的负条件(
if
)语句。

不同的方法是删除这些字符串。查找并替换为
'
-空字符串。或者将结果作为字符串数组
str.split(/{[{::]/)
。那么您想匹配两个开始括号和结束括号之间的所有内容吗?因为如果是这样,您不应该使用负前瞻选项,…@MimArmand我想匹配不是这两个字符串的任何内容。因此,只要字符串不是“{{{”或“{:”,我就应该匹配它。您的问题显示“{”和“{:”不是“{”@JayLane,这很奇怪。它是在发布后几秒钟由另一个用户编辑的,所以他们已经修改了。我的道歉不同的方法是删除这些字符串。查找并替换为
'
-空字符串。或者将结果作为字符串数组
str.split(/{[{:]/)
。那么您想匹配两个开始括号和结束括号之间的所有内容吗?因为如果是这样,您不应该使用负前瞻选项,…@MimArmand我想匹配不是这两个字符串的任何内容。因此,只要字符串不是“{{{”或“{:”,我就应该匹配它。您的问题显示“{”和“{:”不是“{”@JayLane,这很奇怪。它是在发布后几秒钟由另一个用户编辑的,所以他们已经对其进行了修改。我的道歉虽然这些是正确的,但它们并没有完全符合我的要求。我想匹配字符串中任何点上的任何内容,任何内容之间的任何内容,除了“{{”和“{”:即使可能,正则表达式并不是为负匹配而设计的,在Javascript中实现它可能更容易。但是,您的代码可能在某种程度上可以工作,并且在某些正则表达式引擎中经过一些修改:
(?!{{{{124;{:)。)+
虽然这些都是正确的,但它们并不完全符合我的要求。我希望匹配字符串中任何点上的任何内容,任何内容之间的内容,除了“{{”和“{”:即使可能,正则表达式并不是为负匹配而设计的,在Javascript中实现它可能更容易。但是,您的代码可能在某种程度上可以工作,并且在某些正则表达式引擎中经过一些修改:
(?!{{{{}:)+