gpt4 book ai didi

java - 包含单个空格但没有前导或尾随空格的正则表达式模式?

转载 作者:行者123 更新时间:2023-11-30 09:40:32 25 4
gpt4 key购买 nike

我正在尝试定义一个字符串,用户可以使用 Java 中的正则表达式将其输入到系统中。该字符串不应包含尾随、前导或双空格,但可以在整个字符串名称中包含大量空格。它应该只包含一组定义的其他字符,允许的字符集是 ([0-9a-zA-Z_\\+=\\(\\)<>]+) .

有没有办法在字符串中定义无尾随空格、前导空格或双空格,而不使用 '\S' 因为这将允许任何字符?

我尝试使用

替换双空格

String file1 = file.replaceAll("\\s{2,}", " ");哪个有效,然后 file1.trim()

file1 = file1.replaceAll("^\\s+", "");
file1 = file1.replaceAll("\\s+$", "");

不替换尾随和前导空格。

最佳答案

您可以像@Stephan 提到的那样使用Pattern。但是,如果你只是想做一些非常简单的事情,我认为你基本上是在正确的轨道上......只需在 replaceAll(..) 之前做一个 trim():-

public String clean(String s) {
return s.trim().replaceAll("\\s{2}", " ");
}

@Test
public void testClean() throws Exception {
assertEquals("A B", clean(" A B"));
assertEquals("A B", clean("A B "));
assertEquals("A B", clean("A B"));
assertEquals("A B C", clean(" A B C "));
}

关于java - 包含单个空格但没有前导或尾随空格的正则表达式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365039/

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