返回

攻略正则,解锁技能点!

前端

导言

正则表达式,作为编程世界的万能钥匙,能轻松应对各类复杂的字符串操作。掌握它,就能事半功倍,大幅提升编程效率。本文将带你领略正则的魅力,并针对常见场景,提供实用的攻略,助你完善技能点!

基础原理

正则表达式由一系列字符组成,通过指定模式,字符串匹配规则。其核心语法包括:

  • 字符匹配: [a-z]匹配小写字母,\d匹配数字
  • 数量词: *表示零次或多次,+表示一次或多次
  • 分组: ()将表达式分组,可用于捕获匹配结果
  • 锚点: ^表示行首,$表示行尾

实战攻略

提取URL中的域名前缀





Pattern pattern = Pattern.compile("^(?:https?:\\/\\/)?(?:[^\\/]+)\\.(?:[^\\/]+)
Pattern pattern = Pattern.compile("^(?:https?:\\/\\/)?(?:[^\\/]+)\\.(?:[^\\/]+)$");
Matcher matcher = pattern.matcher("https://www.example.com/path/file.html");
if (matcher.find()) {
    System.out.println(matcher.group(1)); // www.example.com
}
quot;
); Matcher matcher = pattern.matcher("https://www.example.com/path/file.html"); if (matcher.find()) { System.out.println(matcher.group(1)); // www.example.com }

验证邮箱地址





Pattern pattern = Pattern.compile("^[\\w-\\.]+@[\\w-\\.]+\\.\\w{2,4}
Pattern pattern = Pattern.compile("^[\\w-\\.]+@[\\w-\\.]+\\.\\w{2,4}$");
Matcher matcher = pattern.matcher("john.doe@example.com");
if (matcher.matches()) {
    System.out.println("邮箱地址有效!");
}
quot;
); Matcher matcher = pattern.matcher("john.doe@example.com"); if (matcher.matches()) { System.out.println("邮箱地址有效!"); }

匹配重复单词





Pattern pattern = Pattern.compile("\\b(\\w+)\\b\\s*\\1");
Matcher matcher = pattern.matcher("hello world, world world world");
while (matcher.find()) {
    System.out.println(matcher.group()); // world
}

总结

掌握正则表达式,犹如解锁了编程世界的技能点,它能帮助你:

  • 解析复杂字符串,提取有用信息
  • 验证数据的有效性,确保准确性
  • 自动化繁琐任务,提升工作效率

通过不断练习和实战,你也能熟练运用正则,成为一名编程高手!