当前位置:   article > 正文

Regex正则表达式 --java学习笔记

Regex正则表达式 --java学习笔记

正则表达式

  • 由一些特定字符组成,代表的是一个规则
  • 作用一:校验数据格式是否合法
  • 作用二:在一段文本中查找满足要求的内容

String提供了一个匹配正则表达式的方法

public boolean matches(String regex(正则表达式))    判断字符串是否匹配正则表达式,匹配返回true,否则false

正则表达式的书写规则:

案例1

需求:检验用户输入的电话、邮箱、时间是否合法

代码:

  1. import java.util.Scanner;
  2. public class CheckPhoneEmailTime {
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. while (true) {
  6. System.out.print("请输入你要校验的手机号码or邮箱or时间(输入0退出):");
  7. String str = sc.nextLine();
  8. if(str.equals("0")) break;
  9. if(str.matches("(1[3-9]\\d{9})|" + //手机号码
  10. "0\\d{2,3}-?[1-9]\\d{6,7}|" + //座机号码
  11. "\\w{2,}@\\w{2,20}\\.\\w{2,10}|" + //邮箱号码
  12. "([0-1]\\d)|(2[0-4])((:)|(-)|(\\.))[0-5]\\d((:)|(-)|(\\.))[0-5]\\d")) //时间格式
  13. System.out.println("格式正确");
  14. else
  15. System.out.println("格式错误");
  16. }
  17. }
  18. }

运行结果:

案例2

  1. import java.util.Arrays;
  2. public class Regex_test {
  3. public static void main(String[] args) {
  4. // public String replaceAll(String regex , String newStr); 按照正则表达式匹配的内容进行替换
  5. //1.请把古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴 中间的非中文字符替换成"-"
  6. String s1 = "古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";
  7. System.out.println(s1.replaceAll("\\w+", "-")); //+表示一或多
  8. //2.请把我我我喜欢编编编编编编编编编编编编程程程! 替换成我喜欢编程!
  9. // (.) 匹配任意字符, ()表示一组
  10. // \\1 为这个组声明一个组号:1 标记它
  11. // {2,} 表示这个字至少出现俩次
  12. // $1取出标记的那个组的内容
  13. String s2 = "我我我喜欢编编编编编编编编编编编编程程程!";
  14. System.out.println(s2.replaceAll("(.)\\1{2,}", "$1"));
  15. //public string[]split(string regex):按照正则表达式匹配的内容进行分割字符串,反回一个字符串数组。
  16. //3.请把 古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴 中的人名获取出来。
  17. String s3 = "古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";
  18. System.out.println(Arrays.toString(s3.split("\\w+")));
  19. }
  20. }

运行结果:

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

闽ICP备14008679号