[英]Match dot between braces regex
匹配左大括號('{{')和右大括號('}}')之間的所有點的正則表達式是什么?
IE 下面字符串中“Journey”和“Data”之間以及“Client”和“FirstName”之間的點。
"{{Journey.Data::Client::Client.FirstName}}"
適用於任何瀏覽器的解決方案是正則表達式替換為{{[\w\W]*?}}
模式和回調 function 用作替換參數以替換匹配的 substring 中所有出現的點:
console.log( "AA {{Journey.Data::Client::Client.FirstName}} ZZ".replace(/{{[\w\W]*?}}/g, (x) => x.replace(/\./g, '')) )
在這里, /{{[\w\W]*?}}/g
匹配所有出現的以{{
開頭的子字符串,然后是盡可能少的零個或多個字符,然后是}}
,然后是(x) => x.replace(/\./g, '')
箭頭 function 刪除所有.
字符(與/\./g
匹配)。
如果您使用的是最新的 ECMAScript 2018+ 兼容的正則表達式風格,如果您匹配{{
和}}
之間的任何點,則可以使用純字符串替換模式:
console.log( "AA {{Journey.Data::Client::Client.FirstName}} ZZ".replace( /(?<={{(?:(?.{{|}}).)*)\?(?=(:?(.,{{|}}).)*}})/gs, '') )
詳情:
(?<={{(?:(?.{{|}}).)*)
- 前面緊跟的位置
{{
- 一個{{
字符串(?:(?.{{|}}).)*
- 單個字符,零次或多次出現但盡可能多,不開始{{
或}}
字符序列\.
- 一個點(?=(?:(?.{{|}}).)*}})
- 緊隨其后的位置
(?:(?.{{|}}).)*
- 單個字符,零次或多次出現但盡可能多,不開始{{
或}}
字符序列}}
- 一個}}
字符串。 由於s
標志, .
匹配所有字符,包括換行符。
您可以使用以下內容:
\{\{.*?(\.).*?\}\}
解釋: { 匹配 { 字符。 匹配。 char () 對點進行分組,以便您可以捕獲它。*? 確保你可以在點之前和之后有 thigs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.