Php 正则表达式替换以获取合法名称

Php 正则表达式替换以获取合法名称,php,preg-replace,Php,Preg Replace,我有他们学历的名单,我需要清理和删除他们的学历。下面是一些列出的例子 伯曼、PMP、CSM 阿德三亚,工商管理硕士 布拉格罗夫·曼德利,无国界医生 鲍德温,工商管理硕士 Akwaboah CEH、CASP、CAP、CCSK、SCM、VmWare Arif(CCIE SP) A.屏蔽、BB、PMP 终审法院朱幼麟 我需要输出像这样 伯曼 阿德三亚 布拉格罗夫·曼德利 鲍德温 阿克瓦波阿 阿里夫 A.盾牌 小楚 我需要一个没有资格的合法姓名。我尝试了preg\u replace。下面是我的代码

我有他们学历的名单,我需要清理和删除他们的学历。下面是一些列出的例子

  • 伯曼、PMP、CSM
  • 阿德三亚,工商管理硕士
  • 布拉格罗夫·曼德利,无国界医生
  • 鲍德温,工商管理硕士
  • Akwaboah CEH、CASP、CAP、CCSK、SCM、VmWare
  • Arif(CCIE SP)
  • A.屏蔽、BB、PMP
  • 终审法院朱幼麟
  • 我需要输出像这样

    • 伯曼
    • 阿德三亚
    • 布拉格罗夫·曼德利
    • 鲍德温
    • 阿克瓦波阿
    • 阿里夫
    • A.盾牌
    • 小楚
    我需要一个没有资格的合法姓名。我尝试了
    preg\u replace
    。下面是我的代码

    preg_replace('/[^A-Za-z\. -]/i',' ',$result->last_name);
    
    你可以用

    '~(?:-\p{Lu}+\b|\s*\([^()]*\)|[,|][^,|]+)+$~'
    
    看。您可以在最后一个
    ~
    分隔符之后添加
    u
    修饰符,以同时支持Unicode字符串

    详细信息

    • (?:-\p{Lu}+\b|\s*\([^()]*\)|[,[124;][^,|]+)+
      -一次或多次连续重复:
      • -\p{Lu}+\b |
        -1+大写字母作为一个单词,或
      • \s*\([^()]*\)
        -0+空格,后跟
        ),任何0+字符,而不是
        ,然后是
        ,或
      • [,|][^,|]+
        -a
        |
        后跟1+字符,而不是
    • $
      -字符串结束锚定

    您需要一个人或一个高级人工智能系统。为什么输出中没有出现
    4.
    5.
    ?有什么原因吗?请尝试4和5也包括在内,我只是输出了几个示例,如果您的ALLCAPS限定符(如
    CEF
    仅由几个大写字母组成,
    \p{Lu}+
    应该可以工作。