【问题标题】:Notepad++ regular expression replacementNotepad++正则表达式替换
【发布时间】:2012-04-01 18:54:11
【问题描述】:

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

<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="[^"]+" 应该这样做。但未经测试,不记得 Notepad++ 正则表达式风格的细节。
  • 提示:在替换任何内容之前,您可以使用 Notepad++“标记”功能检查替换是否正确

标签: regex notepad++


【解决方案1】:

这个正则表达式应该做

ID="\{.*\}"

用下面的空行替换就完成了。 但是,如果出现更多以}" 结尾的内容,记事本会做错事,在这一行应用替换功能

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

将删除除

之外的所有内容
text1 text2

但是,如果您需要解决此问题,请查看 Notepad++ non-greedy regular expressions

编辑: 如果您有 notepad++ 5.9 或更高版本,则正确的正则表达式是

ID="\{.*?\}"

它在行中的第一个花括号处停止

【讨论】:

  • @Benoit 似乎您甚至没有阅读我的全部答案,在我第一次编辑之前已经指出了问题。假设文件都像示例我的答案工作正常。假设文件在一行中有多个 guid,使用 np++ v 5.9,编辑后的答案工作正常。
【解决方案2】:

试试下面的

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

【讨论】:

  • 您还可以更具体一些,将“+”替换为准确的字符数:ID="{[a-zA-Z0-9-]{36}}"
猜你喜欢
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 2016-02-11
相关资源
最近更新 更多