有时候使用replaceAll方法的时候会抛出PatternSyntaxException异常,通过看源代码发现。然后这个是没有显式的抛出异常,所以使用replaceAll方法的时候,没有try或者throw是完全没有错误的,因为PatternSyntaxException是一个运行时异常,就是只有运行时出错才抛出异常。不能算一个bug,只能是用这个方法的一个小陷阱。
public String replaceAll(String regex, String replacement) {
return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}
/**
* Compiles the given regular expression into a pattern. </p>
*
* @param regex
* The expression to be compiled
*
* @throws PatternSyntaxException
* If the expression's syntax is invalid
*/
public static Pattern compile(String regex) {
return new Pattern(regex, 0);
}
string中的replace、replaceAll、split等方法实际是用到了正则表达式,然后正确中compile的静态方法会抛出该异常。
如果正则表达式中带有"(,[,-,/"等字符的时候则会抛出该异常,因为这些字符是正则表达式中的构造字符。
分享到:
相关推荐
这个自定义的replaceAll方法不仅考虑了正则表达式和普通字符串作为查找目标,还考虑了是否需要区分大小写的问题(ignoreCase参数)。 在这个自定义replaceAll方法中,首先判断传入的参数中,查找目标(reallyDo)...
ReplaceAll 多文件文本批量替换工具 依赖.net framework2.0
Java中的`replace`、`replaceAll`和`replaceFirst`是字符串操作中常见的方法,用于替换字符串中的特定子串。它们都是`String`类的方法,但各自有不同的行为和用途。 1. `replace(CharSequence target, CharSequence...
3. **空值处理**:如果`old_string`或`find_string`为空,`ReplaceAll`可能不会执行任何操作,或者会抛出错误,需要在调用前进行适当的检查。 4. **返回值**:`ReplaceAll`会返回一个新的字符串,原始字符串不会被...
因此,如果需要实现replaceAll效果,即替换字符串中所有匹配的子串,可以使用正则表达式配合replace()方法来实现。 正则表达式中的全局匹配标志(g)用于指示匹配操作应该在输入字符串中进行全局搜索,即查找到所有...
Console.WriteLine(ms.ReplaceAll("hello world","l","*")); //输出”he**o wor*d" ArrayList list=ms.GetPosList("hello world","l"); foreach(int pos in list){ Console.WriteLine("" + pos); } //输出2,3,9
在上述示例中,我们使用`javascript:`协议直接在浏览器地址栏中执行了一段JavaScript代码,这段代码会弹出一个包含替换后的字符串`"adbcdabc"`的警告框。 在实际应用中,开发者们通常需要结合具体场景灵活运用...
数据结构 二叉树 替换子树replaceAll \***********************************************************************************************/
string.prototype.replaceall 用于String.prototype.replaceAll的ES Proposal规范填充程序。 如果不可用或不String.prototype.replaceAll调用其“ shim”方法对String.prototype.replaceAll进行填充。 该软件包...
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也是字符串); 2)...
var replaceall = require("replaceall"); 使用替换 var result = replaceall ( "instances of this" , "with this string" , "in this string" ) ; 例子 var original = "hello world goodbye world" ; ...
当`$`后面跟随的数字没有对应的捕获组时,Java编译器会抛出`IllegalArgumentException`,提示“非法的组引用”。 来看一个例子,假设我们有以下代码: ```java public class Test { public static void main...
接下来,我们将深入探讨`replaceAll()`方法的用法、功能、参数以及一个具体的实例。 ### `replaceAll()`方法概述 `replaceAll()`方法的目的是找到一个选择器匹配的所有元素,并将它们替换为传入的新内容。这个方法...
从给出的部分内容中,我们可以看到具体的replaceAll函数实现代码。代码首先检查传入的第一个参数是否为正则表达式类型,如果不是,则利用RegExp构造函数生成一个正则表达式,并根据是否忽略大小写(ignoreCase)来...
`PatternSyntaxException`是当提供的正则表达式语法错误时抛出的异常。例如,如果尝试编译一个包含未封闭的括号或无效字符类的正则表达式,Java会抛出此异常。 虽然Java的正则表达式功能强大,但它与Perl等语言中的...
"浅谈Java中replace与replaceAll区别" Java 中的字符串 replacement 是一个非常重要的知识点,今天我们就来探讨 Java 中的 replace 和 replaceAll 方法之间的区别。 首先, lets Talk about Java 中的 replace ...
在Java编程语言中,`String.replaceAll`方法是一个非常强大的工具,尤其当结合正则表达式使用时,可以实现复杂的文本处理。本文将深入探讨`String.replaceAll`方法的使用及其背后的正则表达式分组概念。 首先,`...
htmlStr =htmlStr.replaceAll("∀", "∀"); htmlStr =htmlStr.replaceAll("∂", "∂"); htmlStr =htmlStr.replaceAll("&exists;", "∃"); htmlStr =htmlStr.replaceAll("∅", "∅"); htmlStr...