douhe4336 2016-10-13 20:41
浏览 75
已采纳

使用PHP正则表达式搜索精确的重复序列(并删除所有重复序列)

I'm looking for a regex that will find an exact repeating pattern (case-sensitive). For instance, middle initials in a name string. Examples:

  • Jim G G Bob is a match on " G " x 2
  • Jim G. G. Bob is a match on " G. " x 2
  • Tom H H H Ford is a match on " H " x 3 and so on ...
  • Sarah H Howard is NOT a match because we have "h ", "H ", and " H" (which are all unique)

I only want to keep the 1st occurrence and remove all others. What will find and remove exact duplicates?

  • 写回答

2条回答 默认 最新

  • dongteng2534 2016-10-13 20:45
    关注

    You can use this in php:

    $repl = preg_replace('/\b([a-zA-Z]\W+)\1+/u', '$1', $str);
    

    RegEx Demo

    RegEx Breakup:

    \b           # word boundary
    (            # capturing group #1 start
       pL        # match a single unicode letter 
       \W+       # match 1 or more non-word character
    )            # capturing group #1 start
    \1+          # match 1 or more of captured group #1 to match *repeats*
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度