【发布时间】:2021-07-18 13:09:05
【问题描述】:
我在 Notepad++ 中打开了类似的数据:
<title>Name 1, Address 1, NY</address>
<title>Name 2, Address 2, California</address>
<title>Name 3, Address 3, Texas</address>
<title>Name 4</title> <address>Address 4, Utah</address> <-- this line is 100% correct
...我想将第一个逗号定位在需要适当标记封闭的组上,并将其替换为:</title><address>
我这样做了,它针对第二组(地址),但是 replace 正则表达式我不知道用什么来保持地址数据的完整性,我尝试过这样的事情但是它会破坏整个地址:
- 查找内容:
, (.+address) - 替换为:
</title><address>(.+address)
如何简单地将 first 逗号替换为新标签</title><address>?
【问题讨论】:
-
要在替换后保留捕获的部分,请使用对该组的反向引用,在您的情况下,它是
\1(或$1)。不要在替换模式中使用正则表达式,它们是特定的模板字符串。 -
太棒了,我做到了,而且效果很好:\1 谢谢!
-
如何避免定位已经包含的标题标签?
-
尝试
<title>[^<>,\v]*\K,\h*([^<>\v]*</address)并替换为</title> <address>\1。但在这种情况下,您的要求 - 如何简单地用新标签替换第一个逗号 - 是错误的。