【问题标题】:Regex for remove citation删除引用的正则表达式
【发布时间】:2016-02-19 00:59:50
【问题描述】:

我搜索了正则表达式以从文本中删除引用(从语音阅读软件听起来很奇怪)。

我想从文本中删除表单中的所有引用

(作者,2000 年),(作者,出版中)

(作者某事,某事 2004,作者 2 2005)

但同时不要删除大括号中的正常文本,例如。 (图3)(可能对读者有帮助)。

引用文本示例:http://journal.frontiersin.org/article/10.3389/fnhum.2014.00114/full

【问题讨论】:

标签: regex replace


【解决方案1】:

我用的是我找到的here

r"([A-Z][\w\-]+ )?\((\D*\d{4}(: ?[\d\-]*)*(, \d{4}(: ?[\d\-]*)*)*;?)*\)"

【讨论】:

    【解决方案2】:

    我最好:

    \([^\)]*,[^\)]*\)
    

    LiveDemo

    【讨论】:

    • 已选择(即在不同角色之间切换并在两者中都表现良好的能力)和(例如 fada),因此不是最佳选择。还是不错的尝试。 Optimal 将返回所有数字和真正的大括号句子,并仅消除引用。
    • @SkorpEN 那么你不能。由于(Author, in press)(i.e., the ability to switch between different roles and perform well in both) 具有相同的签名
    【解决方案3】:

    我发现最好的是

    [\(].?[^\)]*?[\d\d\d\d]{1}.*?[\)]{1}
    

    它可能不是最优的,因为它选择了 (1),在某些情况下它可能不是读者想要的,但它仍然接近最优。

    【讨论】:

    • 这个想法就在这里(在右括号前一年搜索),但您的模式没有意义。看看一个正则表达式教程。使用 regex101.com 将为您提供有关您所写内容的更多信息。
    猜你喜欢
    • 2019-02-16
    • 2019-03-16
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 2013-06-21
    相关资源
    最近更新 更多