Java是否有一种内置的方法来转义任意文本,以便它可以包含在正则表达式中?例如,如果我的用户输入“$5”,我希望精确匹配它,而不是在输入结束后输入“5”。
当前回答
从Java 1.5开始,是的:
Pattern.quote("$5");
其他回答
模式之间的差异。引用和Matcher。在我看到下面的例子之前,我不清楚
s.replaceFirst(Pattern.quote("text to replace"),
Matcher.quoteReplacement("replacement text"));
我想你想要的是Q$5\E。另请参阅Java5中引入的Pattern.quote(s)。
有关详细信息,请参阅Pattern javadoc。
Pattern.quote("blabla")工作得很好。
Pattern.quote()工作得很好。它用字符“\Q”和“\E”包围句子,如果它转义了“\Q”和“\E”。 然而,如果你需要做一个真正的正则表达式转义(或自定义转义),你可以使用以下代码:
String someText = "Some/s/wText*/,**";
System.out.println(someText.replaceAll("[-\\[\\]{}()*+?.,\\\\\\\\^$|#\\\\s]", "\\\\$0"));
该方法返回:Some/\s/wText*/\,**
示例代码和测试:
String someText = "Some\\E/s/wText*/,**";
System.out.println("Pattern.quote: "+ Pattern.quote(someText));
System.out.println("Full escape: "+someText.replaceAll("[-\\[\\]{}()*+?.,\\\\\\\\^$|#\\\\s]", "\\\\$0"));
从Java 1.5开始,是的:
Pattern.quote("$5");
^(否定)符号用于匹配不在字符组中的内容。
这是正则表达式的链接
下面是关于否定的图片信息:
推荐文章
- Java构造函数继承
- 如何在Java中将int[]转换为Integer[] ?
- 你能解释一下流的概念吗?
- 导致java.lang.VerifyError错误的原因
- 如何在Java中监控计算机的CPU、内存和磁盘使用情况?
- 如何设置超时在改造库?
- java lambda可以有一个以上的参数吗?
- HashMap -获取第一个键值
- 使用Jackson将JSON字符串转换为漂亮的打印JSON输出
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- Javadoc @see或{@link}?
- 在准备语句中使用“like”通配符
- Android Eclipse -无法找到*.apk
- 如何将“camelCase”转换为“Camel Case”?
- javac和Eclipse编译器之间的区别是什么?