选择匹配符 |

需求:
在匹配字符的时候有选择性,即:既可以匹配这个,又可以匹配那个,这时需要用到选择匹配符号 |
image.png

代码演示:

  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 = "weitianyuwhy魏";
  6. String str = "wei|魏|why";
  7. Pattern pattern = Pattern.compile(str);
  8. Matcher matcher = pattern.matcher(a);
  9. while(matcher.find()){
  10. System.out.println("找到:" + matcher.group(0));
  11. }
  12. }
  13. }

image.png

限定符

功能:
用于指定其前面的字符和组合项连续出现多少次。
image.png
image.png

代码演示:

  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 = "w111111wwww";
  6. // String str = "w{3}";//表示匹配www
  7. // String str = "1{4}";//表示匹配1111
  8. // String str = "\\d{2}";//表示匹配两位的任意数字字符
  9. //细节:java匹配默认贪婪匹配,即尽可能匹配多的
  10. //此处结果为wwww
  11. // String str = "w{3,4}";//表示匹配www或者wwww
  12. // String str = "\\d{2,4}";//表示匹配2,或3或4位数
  13. //1+
  14. // String str = "1+";//表示匹配一个1或者多个1
  15. // String str = "\\d+";//表示匹配一个数字或多个数字
  16. //1*
  17. // String str = "1*";//表示匹配0个1或者多个1
  18. //? 遵守贪婪匹配
  19. String str = "w1?";//表示匹配a或者a1
  20. Pattern pattern = Pattern.compile(str);
  21. Matcher matcher = pattern.matcher(a);
  22. while(matcher.find()){
  23. System.out.println("找到:" + matcher.group(0));
  24. }
  25. }
  26. }

定位符

定位符,规定匹配的字符串出现的位置,比如在字符串的开始还是结束位置。
image.png

代码演示:

  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 = "123abc";
  6. //表示以至少一个数字开头,后接任意一个小写字母的字符串
  7. // String str = "^[0-9]+[a-z]*";
  8. //表示以至少一个数字开头,必须以至少一个小写字母结束
  9. String str = "^[0-9]+[a-z]$";
  10. Pattern pattern = Pattern.compile(str);
  11. Matcher matcher = pattern.matcher(a);
  12. while(matcher.find()){
  13. System.out.println("找到:" + matcher.group(0));
  14. }
  15. }
  16. }
  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 = "wty123abcwty 12wty 法 ff wty";
  6. //表示匹配边界wty[这里的边界是指:被匹配的字符串最后,也可以是空格的子串后面]
  7. // String str = "wty\\b";
  8. String str = "wty\\B";//与\\b相反
  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. }