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