嗨,我有以下值
000001010016C02AB 111*
000001010016C02 111H
000001010016C 111
预期的输出是
00000101001,C02AB,*
00000101001,C02,H
00000101001,C,
值可能会有所不同。此字符串的长度将始终为23.如果不存在字符,则该位置将被空白填充。我现在使用的正则表达式是
(^.{11})[0-9](.{5})(?:.{5})(.*)
但是在第二组中使用此正则表达式时,会返回空白。我希望删除那些空白。
电流输出:
00000101001,C02AB,*
00000101001,C02 ,H
00000101001,C ,
有人可以帮我从第二组中删除空白吗?
Demo
最佳答案
^(.{11})\d(\S+)\s*.{3}(.?)$
$1,$2,$3
说明:
^ : beginning of string
(.{11}) : 11 any character, stored in group 1
\d : 1 digit
(\S+) : 1 or more non spaces, stored in group 2
\s* : 0 or more spaces
.{3} : 3 any character
(.?) : 0 or 1 character, stored in group 3
$
结果:
00000101001,C02AB,*
00000101001,C02,H
00000101001,C,
关于java - 正则表达式从组中删除空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48043071/