【问题标题】:Regular expression find and replace tag content正则表达式查找和替换标签内容
【发布时间】:2015-05-29 10:01:58
【问题描述】:

使用常规 exp 查找和替换标签。我有大量的 xml 文件。我想查找 .mp3 文件并将标签替换为空的,例如 <url></url>

		<url>audio/mod1_s11.mp3</url>
		<url>audio/mod1_s11.wav</url>

【问题讨论】:

  • 正则表达式:(\S*\.mp3\b) 替换 &lt;url&gt;\1&lt;/url&gt;。你为什么选择正则表达式来做这份工作?
  • 感谢 Avinash Raj 成功了 :)
  • 完成...作为答案发布。
  • 我正在使用 notepad++ 编辑器,并且有大量的 .xml 文件。通过提供文件夹路径,我们可以替换内容,因此我只使用了正则表达式。有没有其他更好的解决方案。无论如何,我使用正则表达式完成了工作。
  • 接受有效的答案。

标签: regex


【解决方案1】:

假设你在一台 Unix 机器上,并且 XML 文件中的数据就像你说的那样发生:

$ find . -name "*.xml" -print | \
  while read f; do
   sed -e 's#<url>.*\.mp3</url>#<url></url>#' $f >${f}.tmp
   mv ${f}.tmp $f
  done

但通常,正则表达式并不适合探索 XML。

【讨论】:

    【解决方案2】:

    正则表达式:

    (\S*\.mp3\b)
    

    \S* 匹配零个或多个非空格字符。在这里你也可以使用\S+

    替换字符串:

    <url>\1</url>
    

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多