gpt4 book ai didi

java - 如何使用正则表达式从字符串中删除破折号(-),除了java中的数字和单词之间?

转载 作者:行者123 更新时间:2023-12-01 19:36:18 25 4
gpt4 key购买 nike

我正在尝试从字符串中删除破折号、下划线和多余空格。

下面是我尝试过的代码:

public class Hello {

public static void main(String args[]) {


String blogName = "ABCD __________________________________________________ Size: 1234-5678 BAR 8956-7896 ---------- CAR 8756-2365";

String nameWithProperSpacing = blogName.replaceAll("\\s+", " ").replaceAll("-", "").replaceAll("_", "");

System.out.println( nameWithProperSpacing );
}
}

不过,我不希望它从单词和数字之间删除它们。例如我当前的代码将 8956-7896 更改为 89567896。

我想要的输出:

ABCD Size:1234-5678 BAR 8956-7896 CAR 8756-2365

最佳答案

您将需要使用lookahead和lookbehind进行搜索

      String nameWithProperSpacing = blogName
.replaceAll("(?<![a-zA-Z0-9])[-_](?![a-zA-Z0-9])", "") ///No -_ not inside a word
.replaceAll("\\s+", " "); /// only 1 space between words

关于java - 如何使用正则表达式从字符串中删除破折号(-),除了java中的数字和单词之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57374219/

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