【发布时间】:2015-12-16 06:13:57
【问题描述】:
如果您只想查看问题并提供快速解决方案,请跳过第一段,第一段只是我试图解决这个问题的背景。
在 NP++ 中使用 RegEx 已经有一段时间了,但我无法完全理解的一件事是如何使用它来存储和利用“变量”。我一直试图理解它一段时间,这不是我第一次遇到这个问题,但在此之前,我总是最终放弃并采取某种解决方法来避免使用这些事物。通过变量,我的意思是人们可以使用诸如 \1 \2 之类的东西来存储和替换值的方式。我一直在阅读许多 SO 线程,但我似乎无法理解。所以我希望有人能给我一个解决这个问题的方法,并解释一下 RegEx 正在做什么/它是如何运作的,这样我就可以解决这个问题,也许最终可以全面使用这些东西。
所以我有一个文件,特别是我的 iTunes 库 XML 文件,我想用另一个字段的值替换一个字段的值。例如,我有:
<key>Play Date UTC</key><date>2040-02-05T21:28:16Z</date>
<key>Release Date</key><date>2015-08-22T17:08:10Z</date>
我想拥有:
<key>Play Date UTC</key><date>2015-08-22T17:08:10Z</date>
<key>Release Date</key><date>2015-08-22T17:08:10Z</date>
即通过文件将多个项目的“Play Date UTC”的值替换为“Release Date”的值。
我认为这样做的方法是,在 pseduo-RegEx 中,类似于:
搜索:
[Variable 1=]<key>Play Date UTC</key><date>[/Variable 1]
[Variable 2=]{Wildcard}[/Variable 2]
[Variable 3=]</date>{newline}<key>Release Date</key><date>[/Variable 3]
[Variable 4=]2015-08-22T17:08:10Z[/Variable 4]
[Variable 5=]</date>[/Variable 5]
替换:
[Variable 1][Variable 4][Variable 3][Variable 4][Variable 5]
如果这有意义的话。
任何帮助将不胜感激。
【问题讨论】:
-
为什么不复制要替换的值,而只为要替换值的模式编写正则表达式?比如:
match : (<key>Release Date<\/key><date>)[^<](<\/date>) and replace with : $12015-08-22T17:08:10Z$2
标签: regex variables search replace notepad++