java - 正则表达式从组中删除空格

标签 java regex regex-group

您好,我有以下值

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    , 

谁能帮我去掉第二组中的空格?

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/

相关文章:

java - 如何提取由2个字符串分隔的多行文本

excel - Excel VBA 正则表达式模式中的定界符,过滤某些内容但不过滤其他内容

php - 在 RegEx (PCRE) 中的上一场比赛结束时继续

python - 正则表达式:将其分组为匹配项数组,其间包含 CR

python - 用于在逗号分隔的字符串中查找 float 的正则表达式

java - 从不同的方法访问变量

java.lang.IllegalStateException 尝试使用 randoop 生成单元测试

java - Hadoop MapReduce RecordReader 实现是否必要?

java - 当 SonarQube 检测到新的违规行为时,是否可以在不使用 Build Breaker 插件的情况下中断 Maven 构建?

regex - 提取价格文本时的 postgresql 正则表达式分组 + 转换问题