java - String#replaceFirst 似乎不随机工作

标签 java regex

我有一个字符串,我尝试用它替换第一次出现的 %s。

例如:

"$%s".replaceFirst("%s", "10");

返回 10 美元,但是

"&cYou do not have %s!".replaceFirst("%s", "$10");

抛出 java.lang.IndexOutOfBoundsException:没有组 1

我有 print 语句,我 100% 知道这就是抛出错误的原因,这就是语句中的内容。

最佳答案

包含 $ 前缀的替换被视为组匹配器(即它尝试仅替换匹配的组。

因此 $ 需要用 \\ 进行转义:

System.out.println("&cYou do not have %s!".replaceFirst("%s", "\\$10"));

关于java - String#replaceFirst 似乎不随机工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60123630/

相关文章:

javascript - 正则表达式中的 $ 与行尾不匹配

java - 尝试上传文件,数组有问题

java - 使用 Java 和 Regex 拆分复杂的字符串

javascript - JS中的正则表达式

regex - 匹配带有可选字符的字符串

Javascript RegEx - 分割 Html 字符串

java - 是否可以通过编程方式滚动任何屏幕?

java - JSF/Primefaces : Open dialogue by click on datatable entry

java - 为什么我的数据报套接字停止接收数据,即使它接收的数据完全正常?

java - 我该怎么做才能让程序输出 1 和 0 而不是 true 和 false?