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