大家好,又见面了,我是你们的朋友全栈君。
public boolean cc(String aString,String parm){
Pattern p=Pattern.compile(aString);
java.util.regex.Matcher matcher=p.matcher(parm);
return matcher.matches();
}
@Test
public void regx(){
System.out.println("匹配确定的字符串"+cc("a03t", "a03t"));//true
System.out.println("匹配确定的字符串"+cc("a03t", "a03"));//false
// ^:匹配输入字符串开始的位置 $:匹配输入字符串结尾的位置
System.out.println("匹配单个字母"+cc("^[a-z]$", "a"));//true
//*:零次或多次匹配前面的字符或子表达式
System.out.println("匹配多个字母"+cc("^[a-z]*$", "abc"));//true
System.out.println("匹配多个字符"+cc("zo*", "z"));//true
//+:一次或多次匹配前面的字符或子表达式
System.out.println("匹配多个字母"+cc("^[a-z]+$","abc"));//true
System.out.println("匹配多个字符"+cc("zo+", "z"));//false
//?:零次或一次匹配前面的字符或子表达式
System.out.println("匹配26个小写字母中的一个"+cc("^[a-z]?$",""));//true
System.out.println("匹配26个小写字母中的一个"+cc("^[a-z]?$","a"));//true
System.out.println("匹配26个小写字母中的一个"+cc("^[a-z]?$","aa"));//true
System.out.println("匹配26个小写字母中的一个"+cc("^[a-z]?$","ab"));//false
//{n}: 是非负整数。正好匹配 n 次
System.out.println("匹配n次"+cc("^[a-z]{3}$", "bbr"));//true
System.out.println("匹配n次"+cc("^[a-z]{3}$", "aaa"));//true
//{n,}:是非负整数,至少匹配n次
System.out.println("至少匹配n次"+cc("^[a-z]{3,}$", "bbryyy"));//true
//匹配至少 n 次,至多 m 次:“{m,n}”
System.out.println("只能输入m-n位的数字:"+cc("^e{0,7}$", "eeeeeee"));//true
//匹配 x 或 y
System.out.println("匹配 x 或 y:"+cc("^x|y$","x"));//true
System.out.println("匹配 x 或 y:"+cc("^(x|y)44$","y44"));//true
//[xzy]字符集。匹配包含的任一字符
System.out.println("字符集。匹配包含的任一字符:"+cc("^[xzy]$", "x"));//true
System.out.println("字符集。匹配包含的任一字符:"+cc("^[xzy]$", "xy"));//false
//[^xzy]反向字符集。匹配未包含的任何单个字符
System.out.println("反向字符集。匹配未包含的任何字符"+cc("^[^xzy]$", "a"));//true
System.out.println("反向字符集。匹配未包含的任何字符"+cc("^[^xzy]$", "x"));//false
//[a-z]字符范围。匹配指定范围内的任何字符
System.out.println("符范围。匹配指定范围内的任何字符"+cc("^[a-z]$", "a"));//true
//[^a-z]反向字符范围。匹配不在指定范围内的任何字符
System.out.println("字符范围。匹配指定范围内的任何字符"+cc("^[^a-z]$","我"));//true
//\d数字字符匹配
System.out.println("数字字符匹配"+cc("\\d{3}", "051"));//true
//\D非数字匹配
System.out.println("非数字匹配"+cc("\\D", "e"));//true
//匹配单个中文
System.out.println("匹配中文:"+cc("[\u4e00-\u9fa5]", "我"));//true
//至少匹配一个中文
System.out.println("匹配中文:"+cc("[\u4e00-\u9fa5]{1,}", "我的"));//true
//匹配多个中文
System.out.println("匹配中文:"+cc("[\u4e00-\u9fa5]*", "我的鹅鹅鹅鹅鹅鹅"));//true
//匹配中文字母数字和_
System.out.println("匹配中文字母数字和_"+cc("^[\u4e00-\u9fa5a-zA-Z0-9]+$", "我我哦eA3"));//true
System.out.println("匹配中文字母数字和_"+cc("^[\u4e00-\u9fa5a-zA-Z0-9]+$", ""));//false
System.out.println("匹配中文字母数字和_"+cc("[^_]^[\u4e00-\u9fa5a-zA-Z0-9]*$", "2"));//true
//匹配中文字母数字和_,并判断长度
System.out.println("匹配中文字母数字和_,并判断长度"+cc("^[\u4e00-\u9fa5a-zA-Z0-9]{4,10}$", "e"));//false
System.out.println("匹配中文字母数字和_,并判断长度"+cc("^[\u4e00-\u9fa5a-zA-Z0-9]{4,10}$", "eeeee"));//true
//不能以下划线开头
System.out.println("不能以下划线开头"+cc("^(?!_)[a-z]+$", "_ad"));//false
System.out.println("不能以下划线开头"+cc("^(?!_)[a-z]+$", "dd"));//true
//不能以_开头或结尾 ,(?!_)不能以_开头,(?!.*?_$)不能以_结尾 !是非的意思 中间的$是与字符串结束的地方匹配
//[a-zA-Z0-9_\u4e00-\u9fa5]+ 至少匹配一个汉字,字母,_,
System.out.println("不能以下划线开头和结尾"+cc("^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$","av我的_d" ));//true
//\w 匹配任何字类字符 等于[a-zA-Z0-9_]
System.out.println("\\w 匹配任何字类字符"+cc("^\\w+$", "sad09_"));//true
//2~4个汉字
System.out.println("2~4个汉字"+cc("^[\u4e00-\u9fa5]{2,4}$", "我的她"));//true
//最长不得超过7个汉字,或14个字节(数字,字母和下划线)正则表达式
System.out.println("最长不得超过7个汉字,或14个字节(数字,字母和下划线)正则表达式"+cc("^[\u4e00-\u9f5a]{0,7}$|^\\w{0,14}$", "eeew"));//true
System.out.println("匹配双字节字符(包括汉字在内)"+cc("[^x00-xff]", "我"));
//匹配空白行的正则表达式:ns*r 可以用来删除空白行
//匹配首尾空白字符的正则表达式:^s*|s*$
/*
* 匹配Email地址的正则表达式
* 1,下面所有的\\都是因为在双引号内,要多个引号转义,可都认为是单\
* 2,脱字符(^) 表示我们要使用这个表达式来检查以特定字符串开头的字符串
* 3,\w匹配任意单一字符,+表示前面条目至少出现一次
* 4,()表示一个组,[] 用来表示可以出现其中的任意一个字符,\.-是允许输入.和连字符-,?表示前面的.或-可以出现一次或一次不出现, \w是.或-后面必须紧跟其他字符
* 5,在()后面出现的* 号,表示前面的条目可以出现零次或多次
* 6,@ 字符代表其本身,没有任何其他意义,这个字符位于电子邮件地址和域名之间。
* 7,@ 字符后再次出现\w+ ,表示@ 后必须出现字符
* 8,在此之后,再次出现([\.-]?\w+)*, 表示电子邮件地址的后缀中允许出现点号或连字符。
* 9,在一对圆括号中建立另一个组(\.\w{2,3}), 表示我们希望找到一个点号,后面跟一些字符
* 10,正则表达式的末尾是一个美元符号$ ,表示匹配的字符串必须在这里结束
*/
System.out.println("匹配Email地址的正则表达式"+cc("^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$", "23@qq.com"));//true
System.out.println("匹配Email地址的正则表达式"+cc("^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$", "2.3@qq.com"));//true
System.out.println("匹配Email地址的正则表达式"+cc("^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$", "2.我3@qq.com"));//false
System.out.println("匹配任何非空白字符"+cc("[\\S]", " "));//false
System.out.println("匹配任何空白字符"+cc("[^\\S]", " "));//true
System.out.println("匹配任何空白字符"+cc("[\\s]", " "));//true
//中括号[]里面有^表示取反 ,d{n}:n表示长度
System.out.println("匹配网址URL"+cc("[a-zA-Z]+://[^\\s]*", "http://dd"));//true
System.out.println("匹配国内电话号码"+cc("\\d{3}-\\d{8}|\\d{4}-\\d{8}","000-99999999"));//true
System.out.println("匹配国内电话号码"+cc("\\d{3}-\\d{8}|\\d{4}-\\d{8}","000-9999999"));//false
//腾讯QQ号从10000开始
System.out.println("匹配腾讯QQ号"+cc("[1-9][0-9]{4,}", "00000"));//false
System.out.println("匹配腾讯QQ号"+cc("[1-9][0-9]{4,}", "10000"));//true
//匹配中国邮政编码,邮政为6位数字
System.out.println("匹配中国邮政编码"+cc("[1-9]\\d{5}", "88888"));
System.out.println("匹配身份证"+cc("^[(\\d([X]?)\\d)]{15}|[(\\d([X]?)\\d)]{18}$", "44444449999999000X"));//true
System.out.println("匹配ip地址"+cc("^\\d+.\\d+.\\d+.\\d+", "1.1.1.1"));//true
System.out.println("匹配正整数 "+cc("^[1-9]+$", "23"));//true
System.out.println("匹配负整数"+cc("^-[1-9]+$", "23"));//false
System.out.println("匹配负整数"+cc("^-[1-9]+$", "-23"));//true
System.out.println("匹配小数"+cc("^\\d+([\\.]?\\d+)*$", "0"));//true
System.out.println("匹配小数"+cc("^\\d+([\\.]?\\d+)*$", "0."));//false
System.out.println("匹配小数"+cc("^\\d+([\\.]?\\d+)*$", "0.3"));//true
System.out.println("匹配小数点后两位"+cc("^(\\d+([\\.]?\\d){0,2})$", "0.35"));//true
System.out.println(cc("^(?!4)4$", "4"));
}
package test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 正则获取筛选内容
* @author Administrator
*
*/
public class Zhengze {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="{\"time_stamp\":\"2020-03-12 13:55:04\",asd,asfocomoom等\"产品类:W10002,哈哈";
String req="time_stamp\":\"(.*?)\".*产品类:(.*?),";
Pattern p=Pattern.compile(req);
Matcher matcher=p.matcher(str);
if(matcher.find()){
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
}
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106065.html原文链接:https://javaforall.cn