正则表达式


正则表达式正则表达式描述了一种字符串匹配模式,可以用来检查一个字符串是否含有某种子串、将匹配的子串替换或从某个串中取出符合某个条件的子串等。

普通字符

  • [abc]
    匹配[…]中的字符的一个
String s="8";
String pattern="[789]";//表示匹配789中的一个
System.out.println(s.matches(pattern));	

结果:

true
  • [^abc]

匹配除了[…]中字符的所有字符

String s="G";
String pattern="[^abc]";// 匹配字母abc以外的字符
System.out.println(s.matches(pattern));

结果:

true
  • [a-z]
    表示一个区间
    [0-9]匹配数字中的一个
    [a-z]匹配小写字母中的一个
    [A-Z]匹配大写字母中的一个
    [a-zA-Z]匹配大小写字母中的一个
    [0-9a-zA-Z]数字字母中的一个
String s="8";
String pattern="[0-9a-zA-Z]";
System.out.println(s.matches(pattern));	

结果:

true
  • .
    匹配除换行符(\n、\r)之外的任何单个字符,相当于[^\n\r]。
String s="a";
String pattern=".";
System.out.println(s.matches(pattern));

结果:

true
  • \w
    匹配字母数字下划线,相当于[0-9a-zA-Z_]
String s="*";
String pattern="\\w";
System.out.println(s.matches(pattern));

结果:

false
  • 其他
    \^ 匹配^本身
    \$匹配$本身
    .匹配.本身
String partten1="\\^";
String partten2="\\$";
String partten3="\\.";
String s1="^";
String s2="$";
String s3=".";
System.out.println(s1.matches(partten1));
System.out.println(s2.matches(partten2));
System.out.println(s3.matches(partten3));

结果:

true
true
true

限定符

  • *
    匹配前面的子表达式 零次或多次
String str="";
String str2="86857646";
String partten1="[1-9]*";
System.out.println(str.matches(partten1));
System.out.println(str2.matches(partten1));
true
true
  • +
    匹配前面的子表达式 一次或多次
String s="";
String s1="0";
String s2="0bjwu";
String partten="[0-9a-z]+";
System.out.println(s.matches(partten));
System.out.println(s1.matches(partten));
System.out.println(s2.matches(partten));
false
true
true

  • 匹配前面的子表达式 零次或一次
String s1="";
String s2="0";
String s3="0u";
String partten="[0-9a-z]?";
System.out.println(s1.matches(partten));
System.out.println(s2.matches(partten));
System.out.println(s3.matches(partten));
true
true
false
  • {n}
    匹配前面的子表达式 n次
String s1="hsdg";
String s2="ghfv67";
String partten="[0-9a-zA-Z]{6}";
System.out.println(s1.matches(partten));
System.out.println(s2.matches(partten));
false
true
  • {n,}
    至少匹配n次
String s1="1";
String s2="1h";
String s3="sg3";
String partten="[0-9a-zA-Z]{2,}";
System.out.println(s1.matches(partten));
System.out.println(s2.matches(partten));
System.out.println(s3.matches(partten));
false
true
true
  • {m,n}
    最少匹配n次,最多匹配m次
String s1="76";
String s2="67v";
String s3="ftyg";
String s4="1234567";
String partten="[0-9A-Za-z]{3,7}";
System.out.println(s1.matches(partten));
System.out.println(s2.matches(partten));
System.out.println(s3.matches(partten));
System.out.println(s4.matches(partten));		
false
true
true
true

特殊符号

  • [0-9]|[]a-z]
    左右两边表达式“或”关系,匹配左边或右边
String a="a";
String partten="[0-9]|[a-z]";
System.out.println(a.matches(partten));		
true
  • ()
    括号中的内容表示一个整体

小练习

匹配身份证号码

String s="610121200103203706";
String pattern="[1-9][0-9]{16}[0-9Xx]";
System.out.println(s.matches(pattern));
true

匹配年龄为18-65岁

String s="19";
String partten="(1[8-9])|([2-5][0-9])|(6[0-5])";
System.out.println(s.matches(partten));
true

去空格

String s="vdufv vhdh dfub  djfb ";
String pattern="[ ]";
String s1=s.replaceAll(pattern,"");
System.out.println(s1);
vdufvvhdhdfubdjfb

按照同样的方法可以去数字,去字母

去除标签字符串

String s="<h1>这是测试结果</h1><p>test a</p>";
String partten="<[/]?h1>|<[/]?p>";
System.out.println(s.replaceAll(partten, ""));
这是测试结果test a
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值