【问题标题】:Regex capture 1 character [duplicate]正则表达式捕获1个字符[重复]
【发布时间】:2018-09-30 12:13:37
【问题描述】:

只要存在长度为 1 的英文字符,我希望将其与前面的文本结合起来。

gsub('(.*)\\s+([a-zA-Z]{1})', "\\1\\2", 'Anti-Candida a ингибинов')

Anti-Candidaa ингибинов

对于下面的示例,它应该返回 'Anti-Candida am ингибинов',因为 'am' 的长度为 2。

gsub('(.*)\\s+([a-zA-Z]{1})', "\\1\\2", 'Anti-Candida am ингибинов')

【问题讨论】:

    标签: r regex


    【解决方案1】:

    你可以使用这个正则表达式:

    \W+([a-zA-Z])\b
    

    替换为\\1。这里的技巧是在单个字母之后匹配单词边界。

    Demo

    如果您在末尾添加 \b,您的正则表达式也可以正常工作。

    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 1970-01-01
      • 2014-09-10
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 2017-09-13
      • 2011-03-11
      相关资源
      最近更新 更多