(?=a) 以a开始匹配
(.*?) 匹配对应的字符串
.*?中间连接,匹配任意字符到结束
(?= b) 以b结尾
例如
package test;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * <p>一句话概要描述目的</p><br> * <p>详细描述如何工作以及注意事项</p><br> * 创建时间: 2023/3/31 10:21 * * @author yk * @version 1.0 * @since 1.8 */public class Test2 {// private static final Pattern pattern=Pattern.compile("(?<=a).*?bbb");// private static final Pattern pattern=Pattern.compile("(?<=<span>编号:)(.*?)(?=</span>)");// private static final Pattern pattern=Pattern.compile("(?<=<span>编号:)(.*?)(?=</span>).*?(?<=name=\"time\" value=\")(.*?)(?=\")");// private static final Pattern pattern=Pattern.compile("(?<=<span>编号:)(.*?)(?=</span>).*?(?<=name=\"time\" value=\")(.*?)(?=\").*?(?<=<marquee title=\")(.*?)(?=\")"); private static final Pattern pattern=Pattern.compile("(?<=<span>编号:)(.*?)(?=</span>).*?(?<=name=\"time\" value=\")(.*?)(?=\").*?(?<=<marquee title=\")(.*?)(?=\").*?(?<=scrollamount=\"10\">)(.*?)(?=</marquee>)"); /** * (?<=<span>编号:) 以<span>编号: 开始 * (.*?)需要的匹配值 11 * .*? 匹配任意字符到下一个符合条件的字符 --中间连接 * (?=</span>) 以</span>结尾 * @param args */ public static void main(String[] args) { List<String[]> result=new ArrayList<>(); String b="<span>编号:11</span> " + "<input type=\"text\" class=\"\" name=\"time\" value=\"2022-06-25 14:52:11\" /> " + "<marquee title=\"江苏省南京市建邺区吴侯街\" height=\"30\" align=\"left\" behavior=\"scroll\" direction=\"left\" scrolldelay=\"300\" scrollamount=\"10\">" + "118.698269," + "31.970634</marquee> "; Matcher matcher=pattern.matcher(b); while (matcher.find()){ String[] row=new String[5]; //编号 row[0]=matcher.group(1).trim(); //时间 row[1]=matcher.group(2).trim(); //经纬度分割 String[] geo=matcher.group(4).trim().split(",",2); if(geo.length==2){ row[2]=geo[0].trim(); row[3]=geo[1].trim(); } //地点 row[4]=matcher.group(3).trim(); result.add(row); } result.forEach(e -> System.out.println(Arrays.toString(e))); }}
\\d 数字
\\D 非数字
+ 表示多次并连续满足
例
Pattern pattern=Pattern.compile("\\d+\\D+")
字符串 01a022b0333cc
输出
01a
022b
0333cc