我想用下劃線替換所有位于特定字串內的點。就我而言,我在我的應用程式中使用 i18n(用于翻譯),并且使用“$t(key)”呼叫鍵。關鍵可以是這樣的:
key = 'translationKey'
key = 'translationKey.subkey.subSubkey'
key = 'translationKey.subkey.one'
key = 'translationKey.subkey.zero'
key = 'translationKey.subkey.others'
在 $t 背景關系中:我想將后面沒有oneorzero或 or的點 (.)others轉換為下劃線 (_)。如果我有這些輸入:
foo.toto.anything
$t('translationKey')
$t('translationKey.subkey.subSubkey')
$t('translationKey.subkey.one')
$t('translationKey.subkey.zero')
$t('translationKey.subkey.others')
然后輸出將是:
foo.toto.anything
$t('translationKey')
$t('translationKey_subkey_subSubkey')
$t('translationKey_subkey.one')
$t('translationKey_subkey.zero')
$t('translationKey_subkey.others')
我想使用 Vscode 正則運算式搜索來捕獲這些點并替換它們(如果可能的話)。
我只設法獲得了目標點所在的所有字串,但我無法只到達這些點。這是我有 atm 的正則運算式:(\$|\.)t?t(c|p)?('(\w \.?)*')
謝謝
uj5u.com熱心網友回復:
您可以使用
(?<=\$t\('[^']*)\.(?!(?:one|zero|others)')(?=[^']*'\))
請參閱正則運算式演示。詳情:
(?<=\$t\('[^']*)- 一個正向后視,需要$t('任何零個或多個字符,而不是'緊鄰當前位置的左側\.- 一個點(?!(?:one|zero|others)')- 如果當前位置的右側有、 或one',則匹配失敗的負前瞻zero'others'(?=[^']*'\))- 需要零個或多個字符而不是'then的正向前瞻')。
uj5u.com熱心網友回復:
以下正則運算式應該有效:它匹配所有后面沒有“一”、“其他”和“零”的點
(?<=\$t\('[^'] )\.(?!one|others|zero)
你可以在這里在線測驗
https://regex101.com/r/84Jil1/1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/382007.html
上一篇:在python源檔案中創建列注釋
