[英]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*").)*$
在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.