我有一个全名的数据集,如:
discord.js
我需要,使用Java方法
Ivanov Ivan Ivanovich,
Petrov Petr Petrovich,
Ahmed Hasan,
Omar Singh,
Trump Donald John,
Mohmadi Hussein Ahmad Husseini
制作如下数据集:
replaceAll(String regex, String text)
我尝试使用 - Ivanov I. I.,
Petrov P. P.,
Ahmed H.,
Omar S.,
Trump D. J.,
Mohmadi H. A. H.
,但它不起作用。
我需要使用什么正则表达式?
答案 0 :(得分:1)
如果您正在寻找单个方法调用正则表达式解决方案,请使用\G
使用此正则表达式:
name = name.replaceAll("(\\p{L}+|\\G)(\\h+\\p{L})\\p{L}*", "$1$2.");
\G
在上一场比赛结束或第一场比赛的字符串开头处断言位置
RegEx分手:
(\\p{L}+|\\G)
:在第1组(\\h+\\p{L})
:捕获空白区域并在组#2 \\p{L}*
:后跟0个或更多unicode字母