[英]Could a regular expression be used to find text between pairs of delimiters
我需要為一對美元符號之間出現的自定義變量解析電子郵件模板,例如:
$foo$bar$baz$foo$bar$baz$wtf
只需在正則表達式中匹配分隔符兩次
const body = "$foo$bar$baz$foo$bar$baz$wtf"; const result = body.match(/\\$[^$]*\\$/g).map(s => s.replace(/\\$/g, '')); console.log(result);
您可以使用此正則表達式/\\$\\w+\\$/g
來獲得預期的輸出'
let regex = /\\$\\w+\\$/g; let str = '$foo$bar$baz$foo$bar$baz$wtf'; let result = str.match(regex).map( item => item.replace(/\\$/g, '')); console.log(result);
您可以在正則表達式中使用捕獲組。
const str1 = '$foo$bar$baz$foo$bar$baz$wtf'; const regex1 = /\\$(\\w+)\\$/g; const str2 = '*foo*bar*baz*foo*bar*baz*wtf'; const regex2 = /\\*(\\w+)\\*/g; const find = (str, regex) => new Array(str.match(regex).length) .fill(null) .map(m => regex.exec(str)[1]); console.log('delimiters($)', JSON.stringify(find(str1, regex1))); console.log('delimiters(*)', JSON.stringify(find(str2, regex2)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.