【发布时间】:2020-04-24 05:31:57
【问题描述】:
示例名称:注意没有空格。
约翰JSmith
迈克·约翰逊
彼得沃克
结果应该是:
约翰·史密斯
迈克·约翰逊
彼得沃克
[A-Z]{2} RegEx 只匹配两个大写字母,不知道如何从这里开始。
谢谢。
【问题讨论】:
-
“ConanOBrien”会发生什么?
示例名称:注意没有空格。
约翰JSmith
迈克·约翰逊
彼得沃克
结果应该是:
约翰·史密斯
迈克·约翰逊
彼得沃克
[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]*)
因为你需要第一组和最后一组。你可以得到这样的 -> $1$3
例如。
'JohnJSmith'.replace(/(^[A-Z][a-z]*)([A-Z])([A-Z][a-z]*)/,'$1$3')->"JohnSmith"
【讨论】: