【问题标题】:Regex: Match the word between tags正则表达式:匹配标签之间的单词
【发布时间】:2017-03-26 17:51:16
【问题描述】:

我有近 5000 个带有这个元标记的 html 文件,但内容不同:

<meta name="Abstract" content="I must &#226;follow the path."/>

我只想匹配这个特定标签中的&amp;#226;。我做了一个正则表达式,但不起作用:

(?s)<meta name="Abstract" content=(&#226;)(.*\"/>)

基本上,&amp;#226; 表示 ANSI 字符中的 â。我犯了一个错误,我把它放到了这个元标记中。所以,我需要用简单的a 替换所有&amp;#226;,但只在这个特定的元选项卡中,而不是在整个文件中。

【问题讨论】:

  • 你要用notepad.exe修改5000个文件?
  • 请添加有关您的目标和您将使用的工具的更多信息。
  • 我在 notepad++ 中测试,我用 GrepWin 或 TextCrawler 编辑了将近 20.000

标签: regex windows notepad


【解决方案1】:

对于记事本++:

查找:

(<meta name="Abstract" content=".*)&#226;(.*"\/>)

替换:

\1a\2

\1 和 \2 指的是捕获组。欲了解更多信息,请查看this question

【讨论】:

  • 这很危险,因为如果当前标签中没有匹配项,则正则表达式无论如何都会匹配,但会将替换跨越到匹配的下一个标签中。
  • no Benjamin,这将匹配整个元标记,而不仅仅是 &lt;meta name="Abstract" 。此外,我需要用a匹配和替换&amp;#226;
  • @JustMe 修改了我的答案以适应您的需求。
猜你喜欢
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 2017-12-24
  • 2013-02-12
  • 2016-12-09
  • 1970-01-01
相关资源
最近更新 更多