如果另一个属性具有特定值,则搜索/替换(在XML文件中)一个属性的值

时间:2013-07-19 12:27:53

标签: notepad++

我的XML文件(~6000行)包含以下行:

<sms protocol="0" address="+12341234" date="12341234" type="2" subject="null" body="smstext" toa="0" sc_toa="0" service_center="+12341234" read="1" status="-1" locked="0" date_sent="null" readable_date="Jan 6, 1980 1:02:14 AM" contact_name="Patrick" />

我希望将contact_name的文本替换为其他内容,但仅限于type =“2”。

我的意思是,如果我可以将所有type =“2”行添加为书签,然后仅在书签行上搜索/替换,那将非常容易,但我还没有找到这样的选项。

那么我如何在Notepad ++中做到这一点?

编辑:更改了标题,我的意思是属性不是标签......

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

查找:(?<=type="2")(.*?)(contact_name=")(.*?)(")

替换为:\1\2SomeOtherContactName\4

(?<=type="2")让你看看字符串是否包含type =“2”,但不是捕获字符串

(.*?)是类型和联系人姓名(任何符号)之间的第一个组

(contact_name=") - 是第二组

(.*?)组#3您想要替换其他值(任何符号,或者看起来像[A-Za-z]

(") - 只包含收盘价。我们在替换语句中将它用作组4