【问题标题】:Regex replace Harvard style bibliography references \d{4}:\s\d+ with comma正则表达式用逗号替换哈佛风格的参考书目参考 \d{4}:\s\d+
【发布时间】:2014-10-17 18:29:20
【问题描述】:

哈佛参考书目,如果你不按时使用 Mendeley 会变得很困难。

[Sihler 1999: 122; Trask 2000: 164]. 
[Benveniste 1935: 170-171, Бенвенист 1955, Bomhard, Kerns 1994: 56-59].

我在博士论文中引用作者的方式是错误的。它应该有一个, 而不是:。喜欢

[Sihler 1999, 122; Trask 2000, 164]. 

使用\d{4}:\s\d+ http://regex101.com/r/mE0rT9/1 我可以找到它们,但是如何在Word 中替换, 而不是:?谢谢。

【问题讨论】:

  • 您使用的是哪种语言?
  • VBA,MS Office,Windows中的一种JS。

标签: regex


【解决方案1】:

您需要使用lookahead 和lookbehind 或backreferences,http://www.regular-expressions.info/lookaround.html

我可能会做这样的事情: preg_replace("~(\d{4}):(\s\d+)~", "$1,$2", $str) 在 php 中作为示例后一种解决方案。

这是一篇讨论 javascript 中的反向引用的帖子:JavaScript - string regex backreferences

【讨论】:

  • 正则表达式方言往往差异很大。您必须在您的语言中找到等效的结构。
【解决方案2】:

表达式:

(?<=\d{4})\:

它使用后向匹配但不返回年份。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多