gpt4 book ai didi

java - java中的正则表达式 : error for str. 替换 ("\s+", "")

转载 作者:行者123 更新时间:2023-12-01 06:43:26 25 4
gpt4 key购买 nike

为什么 java (1.7) 给出以下行的错误?

String str2 = str.replace("\s+", " ");

错误:

Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )   

据我所知“\s+”是一个有效的正则表达式。不是吗?

最佳答案

String.replace() will only replace literals ,这是第一个问题。

第二个问题是,根据定义,\s 不是 Java 字符串文字中的有效转义序列。

这意味着您想要的可能是 "\\s+"

但即便如此,.replace() 也不会将其视为正则表达式。您必须使用 .replaceAll() 来代替:

s.replaceAll("\\s+", "");

但是还有另一个问题。您似乎经常使用它...因此,请使用 Pattern 代替:

private static final Pattern SPACES = Pattern.compile("\\s+");

// In code...

SPACES.matcher(input).replaceAll("");
<小时/>

进一步说明:

  • 如果您只想替换第一次出现,则使用.replaceFirst()String 有,Pattern 也有
  • 当您对 String 进行 .replace{First,All}() 时,会为每个字符串重新编译一个新的 Pattern每次调用。。如果您必须进行重复匹配,请使用Pattern!

关于java - java中的正则表达式 : error for str. 替换 ("\s+", ""),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27628884/

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