Pattern.quote方法的用途是什么?
我正在尝试Pattern.quote
使用以下代码来理解:
String pattern = Pattern.quote("1252343% 8 567 hdfg gf^$545");System.out.println("Pattern is : "+pattern);
产生输出:
Pattern is : \Q1252343% 8 567 hdfg gf^$545\E
什么是\Q
和\E
这里?文档说明中说:
返回
String
指定的文字模式String
。此方法产生一个
String
,可用来创建一个Pattern
与字符串相匹配的,就s
好像它是文字模式一样。输入序列中的元字符或转义序列将没有特殊含义。
但是Pattern.quote
的返回类型String
不是编译Pattern
对象。
为什么需要此方法?使用示例有哪些?
回答:
\Q
表示“文字文本的开始”(即正则表达式“开引号”)
\E
表示“文字文本的结束”(即正则表达式“闭引号”)
调用该Pattern.quote()
方法将在\Q...\E
其中包装字符串,这会将文本转换为正则表达式 文字
。例如,Pattern.quote(".*")
将匹配一个点然后一个星号:
System.out.println("foo".matches(".*")); // trueSystem.out.println("foo".matches(Pattern.quote(".*"))); // false
System.out.println(".*".matches(Pattern.quote(".*"))); // true
该方法的目的是不需要程序员记住特殊术语\Q
并\E
为代码增加一点可读性-正则表达式已经很难阅读。比较:
someString.matches(Pattern.quote(someLiteral));someString.matches("\\Q" + someLiteral + "\\E"));
引用javadoc:
返回指定字符串的文字模式字符串。
此方法产生一个String,该字符串可用于创建与字符串s相匹配的Pattern,就好像它是文字模式一样。
输入序列中的元字符或转义序列将没有特殊含义。
以上是 Pattern.quote方法的用途是什么? 的全部内容, 来源链接: utcz.com/qa/428536.html