首页 > 解决方案 > Notepad++ 正则表达式:搜索仅包含字母且没有数字字符的单词

问题描述

这是我必须处理的字符串示例:

<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>

我已经搜索了一段时间,并尝试了几种模式将电子元件的“名称”嵌入标签中,并在标签中嵌入以下字符串以获取:

<kwd>Amplificator</kwd><adt>AD8622ARMZ</adt>

<kwd>Power Management</kwd><adt>LT1236BIS8-10</adt>

因此,对于本例,我搜索:“Amplificator”但不是“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

我从几天开始就开始使用正则表达式,但我很难理解“规则:

好的,\w一个有字母和数字的词 \d是一个数字,但是如何表达一个有字母和没有数字的词?

我读了很多教程,但其中一些太难了,使用的令牌并不像帮助中写的那么简单......

我的目的不仅是答案,而且我真的想提高自己并理解...

非常感谢您的灯。如果有人知道不完全是初学者的tuto regex notepad++ tuto,那就太好了!

此致

标签: regexnotepad++

解决方案


鉴于您的字符串示例,只要搜索和替换未应用于已替换的文本,就没有必要让它比

     查找内容:;(.*) (.*);
替换为:;<kwd>\1</kwd><adt>\2<adt>;


推荐阅读