[英]Regular Expression to replace text inside tags in Notepad++
蜂群思維!
我正在嘗試使用 Notepad++ 編輯 Memsource *.mxliff 文件。
當我創建一個搜索任務時,源行和目標行混合在一個巨大的列表中。
但我只需要對<target>.../<target>
標簽內的行進行修改。
例如:
1. <target>от 15 до 35 °C</target>
2. <target>Допустимый диапазон температур воздуха от -40 °C до +70 °C {1>1)<1}</target>
在這些行中,我需要用不間斷的空格版本替換所有度數實例:
求: (\\d) °C
替換為: $1 $2
這樣做的最佳方法是什么?
任何提示將不勝感激。 非常感謝!
(?:<target>|\\G)(?:(?!target)[\\s\\S])*?\\K(\\d+)\\s*(°C)(?=.*</target>)
$1 $2
. matches newline
. matches newline
解釋:
(?: # non capture group
<target> # opening tag
| # OR
\G # restart from last match position
) # end group
(?:(?!target)[\s\S])*? # 0 or more any character but not "target"
\K # forget all we have seen until this position
(\d+) # group 1, 1 or more digits
\s* # 0 or more spaces
(°C) # group 2
(?=.*</target>) # must be followed by </target>
替代品:
$1 # content of group 1 (i.e. the temperature)
# non breaking space
$2 # content of group 2 (i.e. °C)
屏幕截圖(之前):
屏幕截圖(之后):
假設我們在目標標簽中有一個°C
,可能有一些類似於:
(<\s*target\s*>[\s\S]*?\d)\s+(°C[\s\S]*?<\s*\/target\s*>)
並替換為,
$1$2
可能可以研究一下。
如果你想簡化/更新/探索表達式,它已在regex101.com 的右上角面板中進行了解釋。 如果您有興趣,可以在此調試器鏈接中觀看匹配步驟或修改它們。 調試器演示了 RegEx 引擎如何逐步使用一些示例輸入字符串並執行匹配過程。
一如既往的簡短替代....
找出什么: (\\d+) (?=°C)
全部替換為: $1NBSP
完畢!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.