返回
攻略正则,解锁技能点!
前端
2023-12-08 00:08:02
导言
正则表达式,作为编程世界的万能钥匙,能轻松应对各类复杂的字符串操作。掌握它,就能事半功倍,大幅提升编程效率。本文将带你领略正则的魅力,并针对常见场景,提供实用的攻略,助你完善技能点!
基础原理
正则表达式由一系列字符组成,通过指定模式,字符串匹配规则。其核心语法包括:
- 字符匹配:
[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
}
总结
掌握正则表达式,犹如解锁了编程世界的技能点,它能帮助你:
- 解析复杂字符串,提取有用信息
- 验证数据的有效性,确保准确性
- 自动化繁琐任务,提升工作效率
通过不断练习和实战,你也能熟练运用正则,成为一名编程高手!