簡體   English   中英

可以使用正則表達式在成對的分隔符之間查找文本嗎

[英]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.

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