当前位置:   article > 正文

正则表达式的常见语法

正则表达式的常见语法

      

目录

一、基本的正则表达式语法

1.1 字符类

1.2 单个字符的特殊表示

1.3 量词表示

 1.4 边界匹配

1.5 分组与捕获

 二 、java中的使用


  在Java中使用正则表达式进行字符串匹配可以说是一个很重要的技能,尤其对于需要进行文本处理或者字符替换的程序来说,更是必不可少的技术手段。

一、基本的正则表达式语法

1.1 字符类

字符类指的是可以匹配单个字符的内容,在正则表达式中通常用中括号“[]”表示,例如

  1. [abc] //匹配a或b或c
  2. [a-zA-Z] //匹配任意大小写字母

1.2 单个字符的特殊表示

 在正则表达式中,一些字符具有特殊含义,例如“.”表示任意一个字符,“\d”表示任意一个数字等,常见的特殊表示符号包括:

  1. \d //匹配数字
  2. \D //匹配非数字
  3. \w //匹配字母、数字或下划线
  4. \W //匹配非字母、数字或下划线
  5. \s //匹配空白字符(空格、制表符、换行符等)
  6. \S //匹配非空白字符
  7. . //匹配任意字符

1.3 量词表示

量词指的是可以匹配多个字符的内容,在正则表达式中通常用花括号“{}”表示,例如:

  1. a{2} //匹配两个连续的a
  2. a{3,5} //匹配三到五个连续的a

 常见的量词包括:

  1. * //匹配0到多次
  2. + //匹配1到多次
  3. ? //匹配0或1次
  4. {n} //匹配n次
  5. {n,m}//匹配n到m次
  6. {n,} //匹配n到多次

 1.4 边界匹配

边界匹配指的是匹配字符串开始或结束位置的内容,在正则表达式中通常用圆括号“()”表示,例如:

  1. ^abc //匹配以abc开头的字符串
  2. abc$ //匹配以abc结尾的字符串

1.5 分组与捕获

在正则表达式中,可以使用圆括号“()”来分组,还可以使用反斜杠符号“\”来捕获匹配的内容,例如:

  1. (a)(b) //分组匹配ab
  2. (\d{4})-(\d{2}) //捕获匹配日期格式(例如:2023-06)

 二 、java中的使用

我们直接通过几个简单的列子来看下如何使用

  1. package com.cjian.pattern;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. /**
  5. * @Author: cjian
  6. * @Date: 2024/4/23 19:42
  7. * @Des:
  8. */
  9. public class Demo {
  10. public static void main(String[] args) {
  11. test2();
  12. }
  13. // 解析kv
  14. private static void test2(){
  15. Pattern pattern = Pattern.compile("(\\S+)=(\\S+)");
  16. Matcher matcher = pattern.matcher("k1=v1 k2=v2 k3=3 k4=five");
  17. while(matcher.find()){
  18. // group()方法可以返回与前一次匹配结果相同的字符串
  19. String key = matcher.group(1);
  20. String value = matcher.group(2);
  21. System.out.println(key+"->"+value);
  22. }
  23. }
  24. // 解析日期
  25. private static void test1() {
  26. String regex = "\\d{4}-\\d{2}-\\d{2}";
  27. Pattern pattern = Pattern.compile(regex);
  28. Matcher matcher = pattern.matcher("2024-04-23 20:16:30 ");
  29. if(matcher.find()){
  30. // group()方法可以返回与前一次匹配结果相同的字符串
  31. String matchedStr = matcher.group();
  32. System.out.println(matchedStr);
  33. }
  34. }
  35. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/497863
推荐阅读
  

闽ICP备14008679号