Regex 记事本++;正则表达式替换

Regex 记事本++;正则表达式替换,regex,notepad++,Regex,Notepad++,您好,我这里有一个大文件,我需要替换一些值,所以我必须使用正则表达式: 有人能帮我告诉我怎么做吗 <FieldRef ID="{FE652450-8A96-416E-AAE4-F85BE196A249}" Name="CG" DisplayName="CG"/> <FieldRef ID="{AAA6ABCD-CE07-4D0E-A689-773DD47F4D64}" Name="Statut" DisplayName="Statut"/> <Field

您好,我这里有一个大文件,我需要替换一些值,所以我必须使用正则表达式: 有人能帮我告诉我怎么做吗

<FieldRef ID="{FE652450-8A96-416E-AAE4-F85BE196A249}" Name="CG"  DisplayName="CG"/>
  <FieldRef ID="{AAA6ABCD-CE07-4D0E-A689-773DD47F4D64}" Name="Statut"  DisplayName="Statut"/>
  <FieldRef ID="{F13A3B87-47DE-4DE2-B480-FE1126B0D5E2}" Name="ElementCMin"  DisplayName="Element C Min"/>

所以在这几行中,我需要用空字符串替换ID=“{guid}”。

这个正则表达式应该可以

ID="\{.*\}"
在下面的行中替换为空,就完成了。 但是,如果出现更多以
}“
结尾的内容,记事本将执行错误的操作,在此行应用replace函数

text1 ID="{F13A3B87-47DE-4DE2-B480-FE1126B0D5E2}" 
text ID="{F13A3B87-47DE-4DE2-B480-FE1126B0D5E2}" text2
将删除除

text1 text2
但是,如果需要解决此问题,请查看

编辑: 如果您有notepad++5.9或更高版本,则corret regex是

ID="\{.*?\}"
它在行中的第一个大括号处停止

请尝试以下操作

ID="{[a-zA-Z0-9-]+}"

ID=“[^”]+”应该这样做。但未经测试,并且不记得记事本++的正则表达式风格的细节。只是一个提示:在替换任何东西之前,可以使用记事本++“标记”功能检查您的替换是否正确correct@Benoit看来你甚至没有读过我的全部答案,问题在我第一次编辑之前就已经指出了。假设文件都像示例一样,我的答案很好。假设文件在一行中有多个GUID,使用np++v 5.9,编辑后的答案可以很好地工作。您还可以更具体地使用字符的精确计数替换“+”:ID=“{[a-zA-Z0-9-]{36}”