【问题标题】:Notepad++: regex as replaceNotepad++:正则表达式作为替换
【发布时间】:2015-11-03 10:04:03
【问题描述】:

我正忙着将我的 url 别名插入数据库。并且需要从我拥有的值列表中进行插入查询。

我的清单中的一些项目:

(NULL, 'tag=23525','2807016'),
(NULL, 'tag=23525','10165'),
(NULL, 'tag=23525','12165'),

我希望有一个正则表达式,它可以找到 tag=23525 并可以用它后面的数字替换它。 所以列表最终将如下所示:

(NULL, 'tag=2807016','2807016'),
(NULL, 'tag=10165','10165'),
(NULL, 'tag=12165','12165'),

我设法找到了 text tag=23525(哇,好难)。但我坚持寻找(替换)后面的数字。

我可以用这个正则表达式轻松找到最后一个数字,但不能用这个正则表达式替换:

^[^,]*,[^,]*,[^,]*\b(\w+)\b

我怎样才能找到 tag=23525 并将其替换为从正则表达式中找到的匹配项?

【问题讨论】:

  • 对你的问题投了赞成票,因为在使用 notepad++ 工作了几年之后。我什至从未注意到可以用正则表达式替换。无论如何,我想通了并在下面添加了解决方案,希望对您有所帮助)

标签: regex notepad++


【解决方案1】:
(?<=tag=)\d+('\s*,\s*')(\d+)

您可以使用这个。替换为$2$1$2\2\1\2。查看演示。

https://regex101.com/r/lR1eC9/4

【讨论】:

  • 非常感谢我想要的 :)!
【解决方案2】:

有点棘手,但你可以这样做:

\d+(',')(\d+)

并替换为

$2$1$2

一张图片 == 千字

【讨论】:

  • 我的错,它是 (?!) 而不是 (?:) - 现在更正。谢谢@vks
  • 为什么不正确?从我的测试中 - 它完全替换了所需的值。见上图
  • regex101.com/r/lR1eC9/5 看这里..它将替换任何数字...它不寻找tag
  • 是的,你是对的,但是知道格式我们可以使它成为我们的优势,并且像这样更短:\d+(',')(\d+)
  • 这将取代所有...OP明确表示I'd love to have a regex expression which can find tag=23525 and can replace it with the number
猜你喜欢
  • 2012-04-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 2011-04-03
  • 2012-01-25
  • 1970-01-01
  • 2013-11-03
相关资源
最近更新 更多