我有這個字串:](-test-word-another)
我試圖找到-介于兩者之間的每一次出現],)
基本上回傳應該是:](另一個-測驗-詞-)
目前我有(?<=\]\()(-)(?=\)),但這只是發現是否只有一個-
先感謝您
uj5u.com熱心網友回復:
試試這個:/(?<=\].*)-(?=.*\))/gm
在這里測驗:https ://regex101.com/r/xkmTZs/3
-這基本上只在它們出現在 a 之后]和之前匹配所有)。
uj5u.com熱心網友回復:
您可以使用
text.replace(/]\([^()]*\)/g, (x) => x.replace(/-/g, '_'))
請看下面的演示:
const text = 'Word-word ](-test-word-another) text-text-.';
console.log( text.replace(/]\([^()]*\)/g, (x) => x.replace(/-/g, '_')) );
正]\([^()]*\)則運算式匹配一個子字串,然后匹配除and和 a之外的](任何零個或多個字符,然后匹配值(此處)內的所有字符都替換為using 。())-x_(x) => x.replace(/-/g, '_')
另一種單一的正則運算式解決方案看起來像
(?<=]\((?:(?!]\()[^)])*)-(?=[^()]*\))
請參閱此正則運算式演示。它匹配任何-緊隨其后的](字符以及除此之外的任何零個或多個字符)都不會開始字符序列,并且緊隨其后的是除and](之外的任何零個或多個字符,然后是一個字符。())
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/460140.html
標籤:正则表达式
上一篇:如何匹配所有不是a-zA-Z和“b4g”的字符(匹配數字,除非遇到b4g)?
下一篇:正則運算式捕獲可移動組
