gpt4 book ai didi

java - 正则表达式将多个数字与一行中的空格合并

转载 作者:行者123 更新时间:2023-11-29 04:30:02 31 4
gpt4 key购买 nike

我需要一个正则表达式来合并一行中的多个数字,而不是将它们全部合并在一起。

示例行:

Hello World9.99 123 456.00 7 890 123.45 0.97

我想要的输出是:

Hello World9.99 123456.00 7890123.45 0.97

我知道基本的正则表达式,但对先行/后行没有经验。

到目前为止,我创建了这个方法:

final String regex = "(?<!\\.\\d{1,3})\\s+(?=\\d{1,3}\\.?\\d{2}?)";

public String mergeNumbers(String s){
return s.replaceAll(regex, "");
}

如果与单词相关的数字有一个点,这就可以正常工作。

但我不知道如何匹配开头没有点的这一行:

Hello World99 123 456.00 7 890 123.45 0.97

这是返回:

Hello World99123456.00 7890123.45 0.97

但我想要:

Hello World99 123456.00 7890123.45 0.97

所以我的问题是:

如何修改我的正则表达式以匹配这两种情况?

最佳答案

我建议使用

.replaceAll("\\b(?<!\\.)(\\d+)\\s+(?=\\d)", "$1")

参见 regex demo .

详细信息:

  • \b - 单词边界
  • (?<!\.) - 不可能有 .就在当前位置之前
  • (\d+) - 第 1 组(用 $1 从字符串替换模式中引用):一个或多个数字
  • \s+ - 1+ 个空格
  • (?=\\d) - 当前位置的右边必须有一个数字。

关于java - 正则表达式将多个数字与一行中的空格合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44132305/

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