您好,我有以下值
000001010016C02AB 111*
000001010016C02 111H
000001010016C 111
预期的输出是
00000101001,C02AB,*
00000101001,C02,H
00000101001,C,
值可能会有所不同。此字符串的长度始终为 23。如果不存在字符,则该位置将由空格填充。我现在的正则表达式是
(^.{11})[0-9](.{5})(?:.{5})(.*)
但是在第二组中使用此 Regex 时会返回空格。我希望删除那些空白。
当前输出:
00000101001,C02AB,*
00000101001,C02 ,H
00000101001,C ,
谁能帮我去掉第二组中的空格?
最佳答案
- 查找:
^(.{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/