下面是一个我必须处理的字符串示例:
<pnr>0240978840</pnr>;Amplificator AD8622ARMZ;<upa>1</upa>
<pnr>0273101670</pnr>;Power Management LT1236BIS8-10;<upa>1</upa>
<pnr>0299801750</pnr>;Power Management LT1175IS8-5;<upa>3</upa>
<pnr>0233201780</pnr>;Amplificator LT1498CS8;<upa>4</upa>
我已经搜索了一段时间,并尝试了几种模式来嵌入";name";标签中的电子元件和标签中的以下字符串的
<kwd>Amplificator</kwd><adt>AD8622ARMZ</adt>
<kwd>Power Management</kwd><adt>LT1236BIS8-10</adt>
因此,对于这个例子,我搜索:"放大器";但不是";AD8622ARMZ";"电源管理";但不是";LT1236BIS8-10";。
我不知道如何只搜索字母单词,而不搜索字母和数字单词。我试过了:
;(w+)s*(D+) which finds ;Amplificator AD and ;Power Management LT
;(w+)s*([^W+]+) which finds ;Amplificator AD8622ARMZ and ;Power Management (only !)
;(w+)s*([^d]) which finds ;Amplificator A
;(w+)s*(D+)S which finds ;Amplificator A and ;Power Management LT1
;(w+)s*([a-zA-Z]+)[^0-9]+ which finds ;Amplificator AD and ;Power Management LT
我从几天开始使用regex,但对我来说很难理解";规则:
好的,w
是一个有字母和数字的单词d
是一个数字,但如何用字母和没有数字的单词来表达呢?
我读了很多教程,但其中一些太难了,所用的标记没有帮助中写的那么简单。。。
对我来说,目的不仅是答案,而且我真的想提高自己,理解。。。
非常感谢您的灯光。如果有人知道一个不完全初学者的tuto regex记事本++tuto,那就太棒了!
向致以最良好的问候
给定字符串示例,只要搜索&替换不适用于已替换的文本,没有必要使其比更复杂
查找内容:;(.*) (.*);
替换为:;<kwd>1</kwd><adt>2<adt>;
Notepad++是PCRE,所以它可以工作:
正则表达式
;((?:[a-zA-Z]+ )+)(.*?);
;
-捕获第一个分号(
-启动一个捕获组;置换中的$1
(?:[a-zA-Z]+ )+
-多次捕获后面没有空格的数字的单词
)
—关闭$1
捕获组;这应该包含我们的非数字单词(
-启动一个捕获组;置换中的$2
.*?
-松散地捕获所有内容;?
阻止我们捕获最后的分号
)
-关闭$2
捕获组;这应该包含我们的字母数字单词;
-捕获最后一个分号
替换
<kwd>$1</kwd><adt>$2</adt>
https://regex101.com/r/jgyikG/1