JAVA正则表达式

量词

+ 至少一次                等价于{1,}
? 至多一次               等价于{0,1}
* 0到无穷多次             等价于{0,}

(“a”.matches(“.”));//.是任意字符(只限一个) T
(“aaaa”.matches(“a*”)); 输出T
(“aaaa”.matches(“a+”));输出T
(“”.matches(“a*”)); 输出T
(“aaaa”.matches(“a?”));输出T
(“”.matches(“a?”));输出T

\d+ 验证数字字符串
(ac)+ ac同时出现多次


连字符

[0-789]等价于[0-9]
[0-9a-z]表示数字或字母的一个字符

    ("a".matches("[abc]"));匹配
    ("a".matches("[^abc]"));不匹配
    ("A".matches("[a-zA-Z]"));T  
    ("A".matches("[a-z]|[A-Z]"));T
    ("A".matches("[a-z[A-Z]]"));T 上述三个等价
    ("R".matches("[A-Z&&[RFG]]"));T  &&表示and,同时满足 

特殊字符

\s 匹配空白字符(包括回车,换行,制表,空格)
\S 非
\w [0-9a-zA-Z_] 1个字符
\W [^0-9a-zA-Z_]
\d [0-9]
\D[^0-9]
\ 就是表示\字符

    (" \n\r\t".matches("\\s{4}"));T  
    (" ".matches("\\S"));F
    ("a_8".matches("\\w{3}"));T
    ("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));T
    ("\\".matches("\\\\"));T
    java里面一个\回和后面的字符形成转义,故为表示一个\,需要用两个\\表示。正则时, 匹配一个反斜线需要用4个反斜线来表示。

锚点

\b 单词分界符,要求单侧是单词字符,另一侧是非单词字符。
^ 匹配一行的开头
$ 匹配一行的结尾
\A 整个字符串的开头,默认情况下等于^
\Z 匹配整个字符串的末尾


环视

仅用于布尔判断

(?=) 右侧文本能有子表达式匹配 肯定顺环视
(?!) 右侧文本不能有子表达式匹配 否定顺环视
(?<) 左侧文本能有子表达式匹配 肯定逆环视
(?!) 左侧文本不能有子表达式匹配 否定逆环视


捕获分组

将括号内的子表达式捕获的字符串存放到匹配结果中,供匹配完成后访问。
有括号就分组

你可能感兴趣的:(java编程思想)