我正在尝试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(".*")); // true
System.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"));
引用html" target="_blank">javadoc:
返回指定字符串的文字模式字符串。
此方法产生一个String,该字符串可用于创建与字符串s相匹配的Pattern,就好像它是文字模式一样。
输入序列中的元字符或转义序列将没有特殊含义。
本文向大家介绍JavaScript中Object.isFrozen()方法的用途是什么?,包括了JavaScript中Object.isFrozen()方法的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 Object.isFrozen() Object.isFrozen()方法用于查找对象是否冻结。 如果符合以下条件,则对象被冻结 它不应是可扩展的。 它的属性应该是 不可配置的。 它不应
本文向大家介绍JavaScript中Atomics.store()方法的用途是什么?,包括了JavaScript中Atomics.store()方法的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 Atomics.store() Atomics.store()是一种内置方法,用于将特定值存储在数组中的特定位置。此方法接受Integer类型的数组,索引和值作为参数。 语法 参数 typedAr
本文向大家介绍JavaScript中Math.clz32()方法的用途是什么?,包括了JavaScript中Math.clz32()方法的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 Math.clz32() Math.clz32()函数返回的数量前导零个比特中的32位二进制的数的表示。在二进制表示中,有32个数字,仅由1和0组成。此方法仔细检查每个元素,并返回0的数量。 语法 示例1 在
当function.identity()返回与它接收到的相同的东西时,我为什么要使用它,而不使用输入或以某种方式修改输入? 这一定有一些实际的用法,但我不知道。
问题内容: 我不了解Java的这一功能。我知道它使编码更容易,有时看起来更整洁,但这的实际用途是什么?相反,我觉得最好显示警告,因为将来任何人在修改代码之前都可以引用它们。这@SuppressWarnings是否提高了编译效率,还是根据任何编码标准? 问题答案: 其他答案已经解释了很多用例,但是我想强调一点, 有时您绝对需要使用它来克服语言本身的局限性,在这些情况下,使用绝对是合法的。 在其他情况
问题内容: java中有什么用? 请解释一下。 问题答案: 可能这个例子会帮助您。