NOTEPAD ++ REGEX - 删除静态字符串和动态字符串之间的所有内容

时间:2013-05-31 22:13:07

标签: regex notepad++

如何删除<item_fifty>### hid之间的所有内容,其中###可以是任意数字?我想保留<item_fifty>### hid,以便在我更换时不会删除它们。

我想转换一下:

<item_fifty>jdfkjalskjfkajsdlfjkasdfkj### hid389208398</item_fifty>

到此:

<item_fifty>### hid389208398</item_fifty>

这是我到目前为止所拥有的

<item_fifty\>.*[0-9]{3} hid

问题是它也删除了### hid。

2 个答案:

答案 0 :(得分:0)

尝试一个积极的前瞻:

.*(?=[0-9]{3} hid)

这应该选择但不包括### hid

编辑:假设您不想删除<item_fifty>,请使用后视:

(?<=<item_fifty>).*(?=[0-9]{3} hid)

编辑2:要让###为任意数量的数字,可以这样做:

(?<=<item_fifty>).*?(?=[0-9]+ hid)

?中的.*?会导致*非贪婪,也就是说,它会消耗最少量的字符串以便匹配(通常它会消耗尽可能多,包括部分数字。)

答案 1 :(得分:0)

捕获文本并在替换中引用它:

Search: <item_fifty\>.*([0-9]{3} hid)
Replace: \1

或者使用前瞻:

Search: <item_fifty\>.*(?=[0-9]{3} hid)

展望未来的表达方式。