我想要一个与#39; {{'或' {:'
测试用例:
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","{:"]
我试过了:
///^[\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
即使没有" {{"或" {:"字符?
答案 0 :(得分:0)
([^ {)(({{)|({))
然后你可以使用\ 1 \ 2。 。 \ n引用字符组或{{
如果您需要在开头使用时添加引号: (“[^ {] *”)为第一组
答案 1 :(得分:0)
您可以使用
^((?:[^{\n])+)({{|{:)*
其中
((?:[^ {\ n])+) - 新行之前的第一组或{,
({{| {:)* - 可选{{或{:group。
请参阅我之前验证过的https://regex101.com/r/3UOewQ/4