
正则表达式
正则表达式是一种用于检测、匹配字符串的表达式,是一种描述规则,主流语言都有良好的支持。
([\\u4e00-\\u9fa5]{2,})([a-zA-Z]{2,}) "); // 2.正则表达式校验 Matcher matcher = pattern.matcher(stringBuffer); // 3.分组输出匹配结果 while (matcher.find()) { String ch = matcher.group(1); String en = matcher.group(2); System.out.println(ch + "-" + en); } }}
发布日期:2021-05-08 20:22:01
浏览次数:15
分类:精选文章
本文共 2396 字,大约阅读时间需要 7 分钟。
文章目录
字符匹配
表达式 | 描述 |
---|---|
A | 精确匹配字符A |
A | B | 选择匹配字符A或B |
[abc] | 字符集合,允许存在集合中任意一个 |
[0-9] | 范围匹配,允许存在0-9的数字 |
[^0-9] | 范围取反,不允许存在0-9的数字 |
元字符
表达式 | 描述 |
---|---|
\d | 匹配单个数字 |
\D | 匹配非数字 |
\w | 匹配单个字母 |
\W | 匹配非字母 |
\s | 匹配空格 |
\n | 匹配换行符 |
. | 匹配任意字符(除换行符) |
\ | | 匹配特殊字符 |
多次重复匹配
表达式 | 描述 |
---|---|
[0-9]{1} | 0-9只允许出现一次 |
[0-9]{1,} | 0-9最少出现1次 |
[0-9]{1,3} | 0-9最少出现1次最多出现3次 |
[0-9]* | 0-9可以出现多次 |
[0-9]+ | 0-9最少出现一次 |
[0-9]? | 0-9最多出现一次 |
定位匹配
表达式 | 描述 |
---|---|
^ab.* | 匹配以ab开头的字符 |
.*ab$ | 匹配以ab结尾的字符 |
^ab.*ba$ | 匹配以ab开头ba结尾的字符 |
正则表达式模式
贪婪模式
贪婪模式是尽可能多的去匹配字符,例如字符串<a herf="www.baidu.com">百度</a><a herf="www.google.com">谷歌</a>
,如果正则表达式为".*"
,返回的字符串为"www.baidu.com">百度</a><a herf="www.google.com"
。
非贪婪模式
非贪婪模式是尽可能少的去匹配字符,例如字符串<a herf="www.baidu.com">百度</a><a herf="www.google.com">谷歌</a>
,如果正则表达式为".*?"
,在表示数量的地方加?
即可表示使用的是非贪婪模式,如此返回的字符串为"www.baidu.com"
和"www.google.com"
。
表达式分组
正则表达式可以使用()
来为表达式分组,如此可以更有效的查询字符串。例如需要校验一个4位或6位的验证码,正则表达式为([0-9]{4})|([0-9]{6})
。
正则表达式在JS中的应用
在JS中使用/[0-9]{2}/
来定义正则对象,并且通过Regex对象的test()方法判断是否符合正则表达式。
Regex
正则表达式在Java中的应用
示例:
package com.regex;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStreamReader;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexTest { public static void main(String[] args) { StringBuffer stringBuffer = new StringBuffer(); try { FileInputStream input = new FileInputStream("F:\\学习目录\\Regex\\web\\sample.html"); InputStreamReader reader = new InputStreamReader(input, "UTF-8"); BufferedReader bufferedReader = new BufferedReader(reader); String str = ""; while ((str = bufferedReader.readLine()) != null) { stringBuffer.append(str + "\n"); } System.out.println(stringBuffer); } catch (Exception e) { e.printStackTrace(); } // 1.创建正则对象 Pattern pattern = Pattern.compile("
国际主要城市 国际主要城市
- 纽约NewYork
- 伦敦London
- 东京Tokyo
- 巴黎Paris
- 香港HongKong
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月16日 13时18分59秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
从RocketMQ的Broker源码层面验证一下这两个点
2021-05-09
如何正确的在项目中接入微信JS-SDK
2021-05-09
初探WebAssembly
2021-05-09
关于Objects类的getClass方法为什么可以得到子类的地址的思考
2021-05-09
239. 滑动窗口最大值
2021-05-09
纵览全局的框框——智慧搜索
2021-05-09
手把手教你如何快速构建应用内消息推送与运营能力
2021-05-09
快服务流量之争:如何在快服务中占领一席之地
2021-05-09
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
2021-05-09
Cocos平台集成AGC性能管理(二)—— 性能管理SDK集成
2021-05-09
华为推送服务 | 简单一招,提高用户活跃和留存
2021-05-09
基于Cocos SDKHub接入华为HMS Game服务—打包上架流程
2021-05-09
Unity平台 | 快速集成华为性能管理服务
2021-05-09