Javascript正则表达式匹配任何东西,但是

Javascript regular expression match anything but

本文关键字:但是 任何东 正则表达式 Javascript      更新时间:2023-09-26

我想要一个匹配除'{{'或'{:'以外的任何内容的正则表达式

测试用例:

var t1= abcd;
var t2= abcd{{;
var t3= abcd{:efg;

我希望它们在使用t.match(REGEX)时具有输出:

//"abcd".match(REGEX) -->      ["abcd"];
//"abcd{{.match(REGEX)"-->     ["abcd","{{"]
//"abcd{:efg".match(REGEX)-->  ["abcd","{:"]

I've try:

///^['s'S]+[^{{|{:]/           //the the match returns null
///^['s'S]*?(?={{|{:)/         //but for t1-->matches null
///^['s'S]+[^{{|{:]+['s'S]*/   //but for t3--> returns abcd{{efg

但是它们总是返回:

//"abcd".match(REGEX) --> null

是否有一种方法可以让它返回["abcd"],即使没有"{{"或"{:"字符?

可以使用

^((?:[^{'n])+)({{|{:)*

,
((?: [^ {' n]) +) -第一组在新行或{之前,
({{|{:)* -可选{{或{:group.

请参阅https://regex101.com/r/3UOewQ/4,我用来验证它是否有效

([^ {] )(({{)|({))

那么你可以使用'1 '2。'n引用一组字符或{{

如果你需要在开头加引号,使用:("[^{]*")为第一组