【问题标题】:Notepad++ regex replace named groupsNotepad++ 正则表达式替换命名组
【发布时间】:2016-02-11 12:19:32
【问题描述】:

我尝试用文章标题替换作者全名 我有一个类似这样的文章列表:

  1. Albershein P., Nevis D. J. 一种通过气液色谱法分析植物细胞壁多糖中糖分的方法 // J. Carbohydrate Research。 – 1967 年。 – 卷。 5,№ 3。 - Р。 340–345。

我有正则表达式

(?'n1'^\d{3}\. )(?'n2'(?:(?:[A-ZА-Я][-a-zćа-я ]+)?([A-ZА-Я][-a-zćа-я]+\xA0[A-ZА-Я]\.(?:\xA0[A-ZА-Я]\.){0,2}\,?)(?: \[et al\])? ?)+)(?'n3' [^\/]+[\/]{2})

但替换为

\k{n1} 

\k'n1'

没用

我们在 perl 中尝试过,但结果相同

【问题讨论】:

  • 只尝试数字组索引\1$1。组名将是 \g<n1>, ${n1} 替换或 \k{n1},\g{n1} 但似乎没有一个在 np++ 中工作。
  • 在 Perl 中,您可以在替换端尝试 $+{name},但它应该采用 eval s///eg 的形式(不确定 eval)
  • \1 \2 ... 在简单的示例中工作正常,但在这种情况下它不起作用(你可以尝试)
  • 在官方帮助 np++ 中我找到了我需要的东西,但它不起作用详细信息在这里docs.notepad-plus-plus.org/index.php/Regular_Expressions
  • 我无法让这个正则表达式在regex101.com工作

标签: regex perl notepad++ regex-group named


【解决方案1】:

尝试在正则表达式中使用(?&lt;groupname&gt;something to match)

替换为:$+{groupname}

【讨论】:

  • 确保您在“替换”选项卡中选择了“匹配大小写”和“正则表达式”。
  • @Decula 我不需要匹配大小写。问题只是关于在官方 notepad++ 文档中描述不正确的命名组。
猜你喜欢
  • 2012-04-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多