gpt4 book ai didi

java - 用零替换未知数量的空格 [Regex/Java]

转载 作者:行者123 更新时间:2023-11-29 04:14:47 25 4
gpt4 key购买 nike

我有以下文字:

Dorothy 123456789  0        98765Fashion 

我需要用 相同数量的 0 替换 098765 之间的空格,所以它看起来像:

Dorothy 123456789  0000098765Fashion 

有一个问题:

  • 0 到 98765 之间空白的确切数量未知。可能没有,也可能有很多。
  • 开头的0是一个常数,但98765中的数字也在变化。

到目前为止,我只用一个 0 替换了 0 到 98765 之间的空格,但它并没有用零匹配所有其余的空白:

regexExpression = "(.{7}).(\\d{9})(..)0(\\s+)(\\d+)(.{7})";
replacement = "$1$2$300$5$6";
newString = oldString.replaceAll(regexExpression, replacement);

最佳答案

您可以使用 \G基于正则表达式:

(?<=0|\G)\h(?=\h*\d)

并将其替换为:

0

在 Java 代码中:

str = str.replaceAll("(?<=0|\\G)\\h(?=\\h*\\d)", "0");

RegEx Demo

正则表达式详细信息:

  • \G断言位置在前一个匹配的末尾或第一个匹配的字符串的开头
  • (?<=0|\G) : 确保我们在上一个位置有一个零或上一个匹配的结尾
  • \h : 匹配水平空格
  • (?=\h*\d) : 确保我们有 0 个或多个空格后跟一个数字

关于java - 用零替换未知数量的空格 [Regex/Java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53089729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com