正则表达式替换以获取合法名称
regular expression replace to get legal name
我有他们的学历名单,我需要清理并删除他们的学历。下面列出了一些示例。
- 伯曼,PMP,CSM
- Adesanya,工商管理硕士
- 布拉格罗夫-曼德利,无国界医生
- 鲍德温,M.A。 |工商管理硕士
- Akwaboah-CEH、CASP、CAP、CCSK、SCM、VmWare。
- Arif (CCIE SP)
- 一个。护盾、BB、PMP
- 朱少,CFA
我需要输出像
- 伯曼
- 阿德萨尼亚
- 布拉格罗夫-曼德利
- 鲍德温
- 阿夸博阿
- 阿里夫
- 一个。护盾
- 小楚
我需要一个没有资格的有效法定名称。我试过 preg_replace
。下面是我的代码
preg_replace('/[^A-Za-z\. -]/i',' ',$result->last_name);
您可以使用
'~(?:-\p{Lu}+\b|\s*\([^()]*\)|[,|][^,|]+)+$~'
参见regex demo。您可以在最后一个 ~
定界符后添加 u
修饰符以支持 Unicode 字符串。
详情
(?:-\p{Lu}+\b|\s*\([^()]*\)|[,|][^,|]+)+
- 一次或多次连续重复:
-\p{Lu}+\b|
- 1+ 个大写字母作为一个单词,或者
\s*\([^()]*\)|
- 0+ 个空格后跟 (
,除 (
和 )
以外的任何 0+ 个字符,然后是 )
,或
[,|][^,|]+
- ,
或 |
后跟 ,
或 |
以外的 1+ 个字符
$
- 字符串锚结束。
我有他们的学历名单,我需要清理并删除他们的学历。下面列出了一些示例。
- 伯曼,PMP,CSM
- Adesanya,工商管理硕士
- 布拉格罗夫-曼德利,无国界医生
- 鲍德温,M.A。 |工商管理硕士
- Akwaboah-CEH、CASP、CAP、CCSK、SCM、VmWare。
- Arif (CCIE SP)
- 一个。护盾、BB、PMP
- 朱少,CFA
我需要输出像
- 伯曼
- 阿德萨尼亚
- 布拉格罗夫-曼德利
- 鲍德温
- 阿夸博阿
- 阿里夫
- 一个。护盾
- 小楚
我需要一个没有资格的有效法定名称。我试过 preg_replace
。下面是我的代码
preg_replace('/[^A-Za-z\. -]/i',' ',$result->last_name);
您可以使用
'~(?:-\p{Lu}+\b|\s*\([^()]*\)|[,|][^,|]+)+$~'
参见regex demo。您可以在最后一个 ~
定界符后添加 u
修饰符以支持 Unicode 字符串。
详情
(?:-\p{Lu}+\b|\s*\([^()]*\)|[,|][^,|]+)+
- 一次或多次连续重复:-\p{Lu}+\b|
- 1+ 个大写字母作为一个单词,或者\s*\([^()]*\)|
- 0+ 个空格后跟(
,除(
和)
以外的任何 0+ 个字符,然后是)
,或[,|][^,|]+
-,
或|
后跟,
或|
以外的 1+ 个字符
$
- 字符串锚结束。