赞
踩
目录
在Java中使用正则表达式进行字符串匹配可以说是一个很重要的技能,尤其对于需要进行文本处理或者字符替换的程序来说,更是必不可少的技术手段。
字符类指的是可以匹配单个字符的内容,在正则表达式中通常用中括号“[]”表示,例如
- [abc] //匹配a或b或c
- [a-zA-Z] //匹配任意大小写字母
在正则表达式中,一些字符具有特殊含义,例如“.”表示任意一个字符,“\d”表示任意一个数字等,常见的特殊表示符号包括:
- \d //匹配数字
- \D //匹配非数字
- \w //匹配字母、数字或下划线
- \W //匹配非字母、数字或下划线
- \s //匹配空白字符(空格、制表符、换行符等)
- \S //匹配非空白字符
- . //匹配任意字符
量词指的是可以匹配多个字符的内容,在正则表达式中通常用花括号“{}”表示,例如:
- a{2} //匹配两个连续的a
- a{3,5} //匹配三到五个连续的a
常见的量词包括:
- * //匹配0到多次
- + //匹配1到多次
- ? //匹配0或1次
- {n} //匹配n次
- {n,m}//匹配n到m次
- {n,} //匹配n到多次
边界匹配指的是匹配字符串开始或结束位置的内容,在正则表达式中通常用圆括号“()”表示,例如:
- ^abc //匹配以abc开头的字符串
- abc$ //匹配以abc结尾的字符串
在正则表达式中,可以使用圆括号“()”来分组,还可以使用反斜杠符号“\”来捕获匹配的内容,例如:
- (a)(b) //分组匹配ab
- (\d{4})-(\d{2}) //捕获匹配日期格式(例如:2023-06)
我们直接通过几个简单的列子来看下如何使用
- package com.cjian.pattern;
-
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
-
- /**
- * @Author: cjian
- * @Date: 2024/4/23 19:42
- * @Des:
- */
- public class Demo {
- public static void main(String[] args) {
- test2();
- }
-
- // 解析kv
- private static void test2(){
- Pattern pattern = Pattern.compile("(\\S+)=(\\S+)");
- Matcher matcher = pattern.matcher("k1=v1 k2=v2 k3=3 k4=five");
- while(matcher.find()){
- // group()方法可以返回与前一次匹配结果相同的字符串
- String key = matcher.group(1);
- String value = matcher.group(2);
- System.out.println(key+"->"+value);
- }
- }
-
- // 解析日期
- private static void test1() {
- String regex = "\\d{4}-\\d{2}-\\d{2}";
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher("2024-04-23 20:16:30 ");
- if(matcher.find()){
- // group()方法可以返回与前一次匹配结果相同的字符串
- String matchedStr = matcher.group();
- System.out.println(matchedStr);
- }
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。