正则表达式是一种用于匹配字符串的工具,Java提供了一套强大的正则表达式API,可以让我们方便地使用正则表达式进行字符串操作。本文将详细介绍Java正则表达式的使用方法,包括语法、常用方法、示例等内容。
(资料图片仅供参考)
一、正则表达式语法
在Java中,正则表达式使用的是Perl 5语法。正则表达式由普通字符和特殊字符组成,普通字符就是字母、数字和一些特殊字符,特殊字符有特殊的含义,用于描述一些复杂的匹配规则。
普通字符
普通字符就是指除特殊字符以外的字符,它们在正则表达式中表示它们本身。例如,正则表达式中的字母和数字表示它们本身,例如正则表达式 "abc123" 匹配的是字符串 "abc123"。
特殊字符
在正则表达式中,特殊字符用于表示一些特定的含义,例如:
(1)单个字符匹配
. :表示匹配任意一个字符,不包括换行符。
[] :表示匹配其中任意一个字符。
^ :表示匹配除了指定字符以外的任意一个字符。
\d :表示匹配任意一个数字,等价于[0-9]。
\D :表示匹配任意一个非数字,等价于[^0-9]。
\w :表示匹配任意一个字母或数字或下划线,等价于[a-zA-Z_0-9]。
\W :表示匹配任意一个非字母或数字或下划线,等价于[^a-zA-Z_0-9]。
\s :表示匹配任意一个空格字符,包括空格、制表符和换行符。
\S :表示匹配任意一个非空格字符。
(2)重复匹配
:表示匹配前面的字符0次或多次。:表示匹配前面的字符1次或多次。? :表示匹配前面的字符0次或1次。
{n} :表示匹配前面的字符恰好n次。
{n,} :表示匹配前面的字符至少n次。
{n,m} :表示匹配前面的字符至少n次,最多m次。
(3)位置匹配
^ :表示匹配字符串的开头。
$ :表示匹配字符串的结尾。
\b :表示匹配单词边界。
\B :表示匹配非单词边界。
二、Java正则表达式API
Java提供了Pattern和Matcher两个类来支持正则表达式操作。其中,Pattern类表示正则表达式模式,Matcher类表示匹配结果。下面介绍Pattern类和Matcher类的常用方法。
Pattern类方法
(1)compile(String regex):将正则表达式编译为Pattern对象。
(2)matches(String regex, CharSequence input):用指定的正则表达式匹配输入的字符串。
(3)split(CharSequence input):按照指定的正则表达式将输入的字符串分割成字符串数组。
(4)pattern():返回当前Pattern对象表示的正则表达式模式字符串。
Matcher类方法
(1)matches():判断当前Matcher对象的输入字符串是否完全匹配正则表达式。
(2)find():在当前Matcher对象的输入字符串中查找下一个匹配的子串。
(3)group():返回当前Matcher对象的输入字符串中与上一次find()方法匹配的子串。
(4)start():返回当前Matcher对象的输入字符串中与上一次find()方法匹配的子串的起始位置。
(5)end():返回当前Matcher对象的输入字符串中与上一次find()方法匹配的子串的结束位置。
三、Java正则表达式示例
下面是一些Java正则表达式的示例:
匹配手机号码
String regex = "^1[3-9]\d{9}$"; String phoneNum = "18812345678"; boolean isMatch = Pattern.matches(regex, phoneNum);
匹配邮箱地址
String regex = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"; String email = "test@example.com"; boolean isMatch = Pattern.matches(regex, email);
匹配身份证号码
String regex = "^\d{17}[0-9Xx]$"; String idCardNum = "420821199001011234"; boolean isMatch = Pattern.matches(regex, idCardNum);
提取URL中的参数
String url = "http://example.com/?id=123&name=张三"; Pattern pattern = Pattern.compile("(?<=\?|&)\w+=[^&]+"); Matcher matcher = pattern.matcher(url); while (matcher.find()) { System.out.println(matcher.group()); }
以上是Java正则表达式的简单示例,通过学习正则表达式的语法和API,可以更加灵活地运用正则表达式解决实际问题。
上一篇:当前报道:承诺持续投资水领域创新,赛莱默世界水日系列活动圆满收官
下一篇:最后一页
X 关闭
- 1、java正则表达式|世界速讯
- 2、当前报道:承诺持续投资水领域创新,赛莱默世界水日系列活动圆满收官
- 3、【天天新要闻】臧克家简介及作品介绍_臧克家简介
- 4、今日快看!潍县署中与舍弟墨第二书_关于潍县署中与舍弟墨第二书介绍
- 5、右上腹靠近肋骨隐隐作痛_右上腹部靠近肋骨隐痛-世界热文
- 6、有点罗圈腿怎么矫正_罗圈腿怎么矫正-世界简讯
- 7、谁不是喝酒喝到吐爱人爱到哭歌词(谁不是喝酒喝到吐爱人爱到哭是什么歌)
- 8、运河行|帮诸多国际大牌做“门脸”,这家企业缘何落户德州? 天天热头条
- 9、股价腰斩,董事长行动! 云母提锂龙头抛出亿元回购方案|世界聚焦
- 10、焦点热议:清明、五一假期将至,你的民宿、机票预订上了吗?
-
环球报道:华泰证券:母猪去化持续 产能或存在缺口 建议布局低位猪股
智通财经获悉,华泰证券发布研究报告称,2022年10月中下旬以来,全国生猪均价持续回落,行业陷入普遍亏损,同时,散户补栏
-
韩媒:尹锡悦拟否决《粮食管理法》修正案,韩议员和农民削发抗议 环球热闻
据韩国《京乡新闻》报道,预计韩总统尹锡悦将在4月4日的国务会议上对共同民主党主导的国会全体会议通过的《粮食管理法》修正案
-
【环球快播报】炒股如何实现稳定盈利。
炒股如何实现稳定盈利。,基金,股票,炒股
-
做梦梦到被狗咬屁股是什么意思_做梦被狗咬了意味着什么
1、梦见被狗咬,将会受到仇人的攻击,或思重病。2、梦见听到狗吠,会受到敌人的侵略。3、梦见狗扑咬自己,会与朋友发生意见分
-
【环球时快讯】西媒:“民主峰会”不过是美地缘政治工具
参考消息网4月3日报道 西班牙每日新闻网站4月1日发表题为《原则服
-
厦门优化政策 中小企业发展获真金白银支持
为了促进本市中小企业平稳健康发展,规范中小企业发展专项资金的管理,近日,厦门市工信局公布了新修订的《厦门市中小企业发展专项资金使用管
-
内江:加强2023年病媒生物防制工作 巩固国家卫生城市创建成果_全球快消息
病媒生物防制是巩固国家卫生城市创建成果的重要工作。近日,内江市按照《全国爱卫会灭鼠、蚊、蝇、蟑螂的标准》和《内江市巩固国家卫生城市病
-
一季度收官!华泰柏瑞富利混合近两年、近三年回报包揽晨星同类首位! 快资讯
2023年一季度收官,回顾今年首季度A股市场的表现,指数走势“先扬后抑”,Wind数据显示,上证指数、沪深300、创业板指分别收涨5 94%、4 63%和2 2
-
里昂:予蒙牛乳业买入评级 目标价升至48港元 天天热推荐
里昂发布研究报告称,看好蒙牛乳业(02319)在可持续的品类组合改善和成本效率提升的引领下提高盈利能力的决心,目标价由45 7港元升至48港元,评
-
盈利双降,东风集团转型的路该如何走?_每日热门
当东风发布财报后,外界才对其3月一系列动作的原因,有了才较为具体的感知。近日,东风集团发布2022年度财报,财报内容显示,去年东风集团营收