正则表达式删除全名中的中间名首字母

RegEx to Remove Middle Initial in a Full Name

示例名称: 注意没有空格。

约翰·史密斯

麦克·约翰逊

彼得沃克

结果应该是:

约翰史密斯

迈克约翰逊

彼得沃克

[A-Z]{2} RegEx 只匹配两个大写字母,不知道如何从这里开始。

谢谢。

假设,你有

1)名称以大写字母开头,后跟一些小写字母 -> [A-Z][a-z]*

2)大写中间字母-> [A-Z]

3)大写最后一个字母后跟一些小写字母 -> [A-Z][a-z]*

你可以把他们分成3组

(^[A-Z][a-z]*)([A-Z])([A-Z][a-z]*)

因为需要first和last group.You可以这样得到-> $1$3

例如

'JohnJSmith'.replace(/(^[A-Z][a-z]*)([A-Z])([A-Z][a-z]*)/,'')->"JohnSmith"