Regexp想要格式化字母字符串

Regexp想要格式化字母字符串,regex,Regex,我想以标准的方式格式化人名的首字母缩写。首字母中的每个字母都应该是大写,每个字母(从第一个到最后一个)后面必须跟一个点。像这样: JKP => J.K.P. jkp => J.K.P. J.KP => J.K.P. JK.P => J.K.P. JKP. => J.K.P. J.K.P => J.K.P. etc... 您有什么解决方案吗?因为我们不知道您使用的是哪种语言,这里有一些伪代码可以完成这项工作: replace all dots in the s

我想以标准的方式格式化人名的首字母缩写。首字母中的每个字母都应该是大写,每个字母(从第一个到最后一个)后面必须跟一个点。像这样:

JKP => J.K.P.
jkp => J.K.P.
J.KP => J.K.P.
JK.P => J.K.P.
JKP. => J.K.P.
J.K.P => J.K.P.
etc...

您有什么解决方案吗?

因为我们不知道您使用的是哪种语言,这里有一些伪代码可以完成这项工作:

replace all dots in the string with ''
split the string into a character array
join the character array with a '.' and make it uppercase

因为我们不知道您使用的是哪种语言,这里有一些伪代码可以完成这项工作:

replace all dots in the string with ''
split the string into a character array
join the character array with a '.' and make it uppercase
PHP等值:

$array = array (
'JKP',
'jkp',
'j.kp',
'jk.p',
'jkp.',
'j.k.p.',
);

foreach ($array as $s)
{
        echo strtoupper (preg_replace ('/(\w)\W*/', '\1.', $s)), "\n";
}
PHP等值:

$array = array (
'JKP',
'jkp',
'j.kp',
'jk.p',
'jkp.',
'j.k.p.',
);

foreach ($array as $s)
{
        echo strtoupper (preg_replace ('/(\w)\W*/', '\1.', $s)), "\n";
}

这是一个java解决方案:
str.toUpperCase().replaceAll((?这是一个java解决方案:
str.toUpperCase().replaceAll((?这是一个Perl解决方案:

my @list = qw/JKP jkp J.KP JK.P JKP. J.K.P/;

for(@list){
    s/\w(?!\.)/$&./g;
    my $result = uc;
    print "$result\n";
}

s/\w(?)/$&./g
用该字符和
替换所有未后跟
的“word”字符,然后用
uc

替换它的大写字母

my @list = qw/JKP jkp J.KP JK.P JKP. J.K.P/;

for(@list){
    s/\w(?!\.)/$&./g;
    my $result = uc;
    print "$result\n";
}

s/\w(?)/$&./g
替换所有“单词”字符后面不跟一个
字符和一个
,然后用
uc

大写它是哪种语言?这看起来像是一个简单的字符串操作作业,你不需要正则表达式。不确定正则表达式是否是解决问题的最直观的方法!所以路德维希·范·贝多芬现在得到了缩写L.V.B.?有没有你似乎在发布正则表达式:-)…现在你有两个问题。哪种语言?这看起来像一个简单的字符串操作作业,你不需要正则表达式。不确定正则表达式是否是解决问题的最直观的方法!所以路德维希·范·贝多芬现在得到了缩写L.V.B.?每个人似乎都在发布正则表达式:-)…现在你有两个问题。