元字符功能分类:

  1. 限定符
  2. 选择匹配符
  3. 分组组合
  4. 特殊字符
  5. 字符匹配符
  6. 定位符

元字符—转义号//

//符号说明:
在我们使用正则表达式去检索某些特殊字符的时候,需要用到转义符号,否则检索不到结果,甚至会报错。

案例:用(去匹配“abc$(abc(123(”。

  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. public class Main {
  4. public static void main(String[] args) {
  5. String a = "abc$(abc(123(";
  6. //需求:匹配( => \\(
  7. //匹配. => \\.
  8. String str = "\\(";
  9. Pattern pattern = Pattern.compile(str);
  10. Matcher matcher = pattern.matcher(a);
  11. while(matcher.find()){
  12. System.out.println("找到:" + matcher.group(0));
  13. }
  14. }
  15. }

image.png
提示:在Java语言中,两个\代表其他语言中的一个\
需要用到转义符号的字符有:

. * + ( ) $ / \ ? [ ] ^ { }

元字符—字符匹配符

image.png
image.png

[a-z]说明

  1. [a-z]表达式可以匹配a-z中任意一个字符。
  2. [abcd]表示匹配abcd中任意一个字符。

    大小写区分

  3. java正则表达式默认是区分大小写的。

不区分大小写的方法:

  • (?i)abc表示匹配abc,都不区分大小写。
  • a(?i)bc表示匹配abc,a区分大小写,bc不区分大小写。
  • a((?i)b)c表示匹配abc,a和c区分大小写,只有b不区分大小写。
  • Pattern pattern = Pattern.compile(str,Pattern.CASE_INSENSITIVE);//当创建Pattern对象时,指定Pattern.CASE_INSENSITIVE,表示匹配是不区分字母大小写的。

    [^a-z]说明

  • [^a-z]表示可以匹配的是除a-z之外的任意一个字符。

  • [^A-Z]表示可以匹配的是除A-Z之外的任意一个字符。
  • [^0-9]表示可以匹配的是除0-9之外的任意一个字符。
  • [^abcd]表示匹配除abcd之外的任意一个字符。

其它

  • \d表示可以匹配0-9的任意一个数字,相当于[0-9]。
  • \D表示可以匹配除0-9之外的的任意一个数字,相当于[^0-9]。
  • \w匹配任意英文字符,数字和下划线,相当于[a-zA-Z0-9_]
  • \W相当于[^a-zA-Z0-9_],与\w刚好相反。
  • \s 匹配任何空白字符(空格,制表符……)
  • \S 匹配任何非空白字符和\s相反
  • . 匹配除\n之外的所有字符,如果要匹配.本身,则需要使用\.

    代码演示

    ```java import java.util.regex.Matcher; import java.util.regex.Pattern;

public class Main { public static void main(String[] args) { String a = “a11c8 wty_WTY@”;

// String str = “[a-z]”;//匹配a-z之间任意一个字符 // String str = “[A-Z]”;//匹配A-Z之间任意一个字符 // String str = “wty”;//匹配wty字符串,默认区分大小写 // String str = “(?i)wty”;//匹配wty字符串,不区分大小写 // String str = “[0-9]”;//匹配0-9之间的任意一个字符 // String str = “[^a-z]”;//匹配的是除a-z之外的任意一个字符。 // String str = “[xyz]”;//匹配的是xyz中的任意一个字符。 // String str = “\D”;//匹配的是不在0-9之间的任意一个字符 // String str = “\w”;//匹配大小写英文字母,数字,下划线 // String str = “\W”;//等价于[^a-zA-Z0-9_],与\w相反 // String str = “\s”;//匹配任何空白字符(空格,制表符……) // String str = “\S”;//匹配任何非空白字符和\s相反 String str = “.”;//匹配除\n之外的所有字符 Pattern pattern = Pattern.compile(str); Matcher matcher = pattern.matcher(a); while(matcher.find()){ System.out.println(“找到:” + matcher.group(0)); } } } ```