Notepad++中{ }中内容的通配符替换

Notepad++中{ }中内容的通配符替换

我有一个包含数千个项目的 XML 文件:

<item  component="ComponentInfo{www.jne.co.id/www.jne.co.id.JNEwelcome}" drawable="app_jneexpressacrossnations_www_jne_co_id"/>
<item  component="ComponentInfo{xeed.xposed.cbppmod/xeed.xposed.cbppmod.Launch}" drawable="app_pbmc_xeed_xposed_cbppmod"/>
<item  component="ComponentInfo{xeed.xposed.cbppmod/xeed.xposed.cbppmod.Launcher}" drawable="app_pbmc_xeed_xposed_cbppmod"/>
<item  component="ComponentInfo{yong.app.music.android/org.kreed.vanilla.LibraryActivity}" drawable="app_music_yong_app_music_android"/>
<item  component="ComponentInfo{yqtrack.app/yqtrack.ui.splash.SplashActivity}" drawable="app_17track_yqtrack_app"/>
<item  component="ComponentInfo{yqtrack.app/yqtrack.app.activities.SplashActivity}" drawable="app_17track_yqtrack_app"/>
<item  component="ComponentInfo{yqtrack.app/yqtrack.app.UserInterface.Splash.SplashActivity}" drawable="app_17track_yqtrack_app"/>
<item  component="ComponentInfo{yuku.alkitab/yuku.alkitab.base.IsiActivity}" drawable="app_alkitab_yuku_alkitab"/>

但我需要所有项目的结果:

<item drawable="app_jneexpressacrossnations_www_jne_co_id"/>
<item drawable="app_pbmc_xeed_xposed_cbppmod"/>
<item drawable="app_pbmc_xeed_xposed_cbppmod"/>
<item drawable="app_music_yong_app_music_android"/>
<item drawable="app_17track_yqtrack_app"/>
<item drawable="app_17track_yqtrack_app"/>
<item drawable="app_17track_yqtrack_app"/>
<item drawable="app_alkitab_yuku_alkitab"/>

我尝试使用正则表达式执行此操作,但无法弄清楚。如何在 Notepad++ 中实现此操作?

答案1

Replace选项 (按Ctrl+ H) 中,尝试以下选项:

Find What: (component).*?(drawable)
Replace with: \2

Search Mode: Regular Expression

并且应用Replace all它将返回您预期的结果。

示例执行截图:

替换节点


更新

如果您想删除多余的空格,请在查找的字符串<item component=前面添加一个空格(component).*?(drawable)

相关内容