Java Pattern的用法是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Pattern的用法是啥相关的知识,希望对你有一定的参考价值。

参考技术A 正则表达式中的特殊字符:
\\ 反斜杠
\t 间隔 ('\u0009')

\n 换行 ('\u000A')

\r 回车 ('\u000D')

\d 数字等价于[0-9]

\D 非数字等价于[^0-9]

\s 空白符号 [\t\n\x0B\f\r]

\S 非空白符号 [^\t\n\x0B\f\r]

\w 单独字符 [a-zA-Z_0-9]

\W 非单独字符 [^a-zA-Z_0-9]

\f 换页符
\e Escape

\b 一个单词的边界
\B 一个非单词的边界
\G 前一个匹配的结束

^为限制开头 ^java 条件限制为以Java为开头字符
$为限制结尾 java$ 条件限制为以java为结尾字符
.为限制一个任意字符 java.. 条件限制为java后除换行外任意两个字符加入特定限制条件

[a-z] 条件限制在小写a to z范围中一个字符
[A-Z] 条件限制在大写A to Z范围中一个字符
[a-zA-Z] 条件限制在小写a to z或大写A to Z范围中一个字符
[0-9] 条件限制在小写0 to 9范围中一个字符
[0-9a-z] 条件限制在小写0 to 9或a to z范围中一个字符
[0-9[a-z]] 条件限制在小写0 to 9或a to z范围中一个字符(交集)

[]中加入^后加再次限制条件
[^a-z] 条件限制在非小写a to z范围中一个字符
[^A-Z] 条件限制在非大写A to Z范围中一个字符
[^a-zA-Z] 条件限制在非小写a to z或大写A to Z范围中一个字符
[^0-9] 条件限制在非小写0 to 9范围中一个字符
[^0-9a-z] 条件限制在非小写0 to 9或a to z范围中一个字符
[^0-9[a-z]] 条件限制在非小写0 to 9或a to z范围中一个字符(交集)

在限制条件为特定字符出现0次以上时,可以使用「*」
J* 0个以上J

.* 0个以上任意字符
J.*D J与D之间0个以上任意字符

在限制条件为特定字符出现1次以上时,可以使用「+」
J+ 1个以上J

.+ 1个以上任意字符
J.+D J与D之间1个以上任意字符

在限制条件为特定字符出现有0或1次以上时,可以使用「?」
JA? J或者JA

出现限制为连续出现指定次数字符「a」
J2 JJ

J3 JJJ

文字a个以上,并且「a,」
J3, JJJ,JJJJ,JJJJJ,???(3次以上J并存)

文字a个以上,b个以下「a,b」
J3,5 JJJ或JJJJ或JJJJJ

两者取一「|」
J|A J或A

Java|Hello Java或Hello

「()」中规定一个组合类型比如,我查询<a
href=\"index.html\">index中<a
href>间的数据,可写作(.+?)

String name = "";
Pattern pattern = Pattern.compile("(.)*(\\w\\sV[0-9]3R[0-9]3C[0-9]2(B[0-9]3)?)");
Matcher m = pattern.matcher(name);
if(m.matches())
System.out.println("相同");
else
System.out.println("不相同");

Java.util.regex中matcher 和pattern的用法

求 一个 pattern 来match 2种 loop, 一个是 for loop 符合的pattern的形式是for (- ; - ; -) 还一个是while loop 要求的pattern是while (- Boolean operator -) (里面要求是逻辑算子) 想用这个方法 去寻找 有几个 for 和while loop 在一个 文档中 还有一个问题就是 如何去计算 有几个单词 在一个string里面例如"All Rights Reserved" 有3个单词, 只要是没有空格并且连续的字母后面可以跟符号或者是空格 都算是一个单词

这是我的总结:
java.lang包中的String类,java.util.regex包中的Pattern,Matcher类中都有matches()方法。
都与正则表达式有关。下面我分别举例:(字符串:"abc",正则表达式: "[a-z]3")

String类的方法:
boolean b = "abc".matches("[a-z]3"
System.out.println(b);

Pattern类中的方法:
boolean b = Pattern.matches("[a-z]3","abc");
System.out.println(b);

Matcher类中的方法:
Pattern p = Pattern.compile("[a-z]3");
Matcher m = p.matcher("acc");
boolean b =m.matches()
System.out.println(b);

得到的结果都为true。
参考技术A for循环可以这样匹配
for\s*\([^;]+;[^;]+;[^\)]+\)
while循环可以这样匹配
while\s*\(.+\)
至于统计单词只要匹配如下的就可以了
\w+(?=[^\w]+)
亲测可行
如有疑问可以到我个人网站留言(见个人资料),将为你一一解决

以上是关于Java Pattern的用法是啥的主要内容,如果未能解决你的问题,请参考以下文章

java正则表达式的子序列是啥

java正则pattern的正确用法怎么用

java 正则表达式 ^java 是啥意思

java中pattern是啥意思?

java中pattern是啥意思?

java.util.regex中的pattern 和 matcher的用法