JAVA中的正则表达式

时间:2025-02-12 14:38:03

1、字符类:

①[abc]: a、b、c

②[^abc]: 任何字符,除了a、b、c

③[a-zA-Z]: a到z或A到Z,两头的字母包含在内(范围)

2、预定义字符类

① .   : 任何字符

②\d  : 数字: [0-9]

③\D :非数字:[^0-9]

④\s  :空白字符:[ \t\n\x0B\f\r]

⑤\S :非空白字符:[^\s]

⑥\w :单词字符:[a-zA-Z_0-9]

⑦\W:非单词字符:[^\w]

3、POSIX字符集(仅US-ASCII)

①\p{Lower} 小写字母字符:[a-z]

②\p{Upper} 大写字母字符:[A-Z]

③\p{ASCII} 所有ASCII:[\x00-\x7F]

④\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]

⑤\p{Digit} 十进制数字:[0-9]

⑥\p{Alnum} 字母数字字符:[\p{Alpha}\p{Dight}]

⑦\p{Punct} 标点符号:!"#$%'()*+,-./:;<=>?@[]^_`{|}~

⑧\p{Blank} 空格或制表符:[\t]

4、边界匹配符

①^ :行的开头

②$ :行的结尾

5、Greed数量词

①X? :X,一次或一次也没有

②X* :X,零次或多次

③X+ :X,一次或多次

④X{n} : X,恰好n次

⑤X{n,} :X,至少n次

⑥X{n,m}: X,至少n次,但是不超过m次

6、Logical 运算符

①XY :X后跟Y

②X|Y :X或Y

③(X):X,作为捕获组

7、特殊构造(非捕获)

(?:X)  X,作为非捕获组

  (?=X)  X,通过零宽度的正 lookahead

  (?!X)    X,通过零宽度的负 lookahead

  (?<=X) X,通过零宽度的正 lookbehind

  (?<!X)  X,通过零宽度的负 lookbehind

  (?>X)   X,作为独立的非捕获组