当前位置: 首页 > 知识库问答 >
问题:

Java不能用replaceAll方法[duplicate]替换“{”

叶国兴
2023-03-14

我们使用的是 replaceAll 的 String 方法,我们不能在任何字符串中替换 { 。我们的例子:

尝试过:

"some { string".replaceAll("{", "other string");

误差如下:

java.util.regex.PatternSyntaxException:发生非法重复

对任何想法持开放态度!也许有解决方法?!

共有3个答案

夹谷奇
2023-03-14

您需要转义{,因为它在regex中具有特殊含义。使用:

String s = "some { string".replaceAll("\\{", "other string");
唐茂实
2023-03-14

尝试使用 replace() 如下所示

"some { string".replace("{", "other string");

或者使用以下正则表达式格式的replaceAll

"some { string".replaceAll("\\{", "your string to replace");

注意:在 replace() 的情况下,第一个参数是字符序列,但在 replaceAll 的情况下,第一个参数是正则表达式

仲孙逸明
2023-03-14

使用replaceAll需要正则表达式(regex)

尝试使用替换方法而不是全部替换

"some { string".replace("{", "other string");

或者使用 \\ 对正则表达式中的特殊字符进行转义

"some { string".replaceAll("\\{", "other string");
 类似资料:
  • 问题内容: 我有一个字符串,想简单地用string替换其中的所有换行符。 只需写一下就足够了: 我对它的正则表达式部分感到困惑。我换行需要两个斜杠吗?这样够好吗? 问题答案: 不要使用正则表达式! 。您只需要纯文本匹配即可替换。 用于将文字字符串替换为另一个: 请注意,它仍然可以替换 所有 出现的内容,区别是使用正则表达式进行搜索。

  • 编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。 我有这个练习。为什么不使用reappeAll?我有一个错误:字符串索引超出范围:1

  • 问题内容: 我一直在尝试设计一种用Pattern / Matcher实例替换多个String#replaceAll调用的方法,希望它比我当前在String中替换文本的方法要快,但是我不确定该怎么做关于它。 这是我要操作的字符串的示例: 如您所见,有多个@字符,中间有3个字符。情况总是如此。如果我想替换“ @ xxx @”的每个实例(其中xxx可以是0到9之间的任何小写字母或数字),最有效的解决方法

  • 问题内容: 我希望将文本“REPLACEME”替换为我的StringBuffer符号。当我打印符号时,它是一个有效的字符串。当我打印查询时,它仍然具有文本REPLACEME而不是符号。为什么? 问题答案: 更改 至: Java中的字符串被设计为不可变的。 这就是为什么不能替换当前字符串 中 的字符,因此它必须返回替换了字符的 新 字符串。 此外,如果你想简单地替换文字,不需要正则表达式的语法支持使

  • 我尝试了内置方法 String#replaceAll() 来替换我的字符串内容中的所有“$”。但它不起作用。 输出: 预期产出: 编辑:虽然Java正则表达式和美元符号涵盖了答案,但我的问题可能对使用String#replaceAll()时面临同样问题的人有所帮助。字符串replace()和replaceAll()之间的区别也可能有所帮助。 这个问题的两种可能的解决方案是 或

  • 本文向大家介绍Java Collections Example的replaceAll()方法,包括了Java Collections Example的replaceAll()方法的使用技巧和注意事项,需要的朋友参考一下 集合类方法 replaceAll()方法在java.util包中可用。 replaceAll()方法用于用给定的新元素(new_ele)替换List(l)中存在的给定旧元素(old