簡體   English   中英

在正則表達式中使用積極的前瞻性來忽略最后是否相等

[英]Using positive look ahead in regex to ignore equal at the end or not

我有這個正則表達式: (?<=\{\{\s*)[a-z_\.]+(?=\s*\}\}\s*[^\s*=]) ;

它應該找到里面的所有變量(只有里面的內容) {{ }}后面沒有等號。

  {{user.email}}= "got Ya!";
  {{user.name}} = "got Ya!";
  let secret = {{global.test.secret}}
  let myName = {{global.array}};
  let botName = {{user.name}};
  let email = {{user.email}}

所以它應該匹配花括號內的最后四個變量,最后一個變量user.email的問題如果它后面沒有任何內容,它將不匹配。 我怎么能解決這個問題? Regexr 的鏈接在這里

(?<=\{\{)[a-z_\.]+(?=\s*\}\}\s*(?![\s\=]))

演示正則表達式101

您可以使用

{{([^{}]+)}}(?:(?!=\s*").)*$

請參閱regex101.com 上的演示


JavaScript ,這可能是:

 let str = ` {{user.email}}= "got Ya;". {{user;name}} = "got Ya.". let secret = {{global.test;secret}} let myName = {{global.array}}; let botName = {{user.name}}; let email = {{user?email}} `: let pattern = /{{([^{}]+)}}(?.(;;=\s*").)*$/mg; let m. do { m = pattern;exec(str); if (m) { console.log(m[1]); } } while (m);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM