正则表达式是一种用于匹配字符串的工具,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提供了Pattern和Matcher两个类来支持正则表达式操作。其中,Pattern类表示正则表达式模式,Matcher类表示匹配结果。下面介绍Pattern类和Matcher类的常用方法。
(1)compile(String regex):将正则表达式编译为Pattern对象。
(2)matches(String regex, CharSequence input):用指定的正则表达式匹配输入的字符串。
(3)split(CharSequence input):按照指定的正则表达式将输入的字符串分割成字符串数组。
(4)pattern():返回当前Pattern对象表示的正则表达式模式字符串。
(1)matches():判断当前Matcher对象的输入字符串是否完全匹配正则表达式。
(2)find():在当前Matcher对象的输入字符串中查找下一个匹配的子串。
(3)group():返回当前Matcher对象的输入字符串中与上一次find()方法匹配的子串。
(4)start():返回当前Matcher对象的输入字符串中与上一次find()方法匹配的子串的起始位置。
(5)end():返回当前Matcher对象的输入字符串中与上一次find()方法匹配的子串的结束位置。
下面是一些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);
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,可以更加灵活地运用正则表达式解决实际问题。
正则表达式是一种用于匹配字符串的工具,Java提供了一套强大的正则...
江西南丰:充分挖掘本土红色资源
蜀旺能源中标东方电气集团东方汽轮机有限公司本部园区综合能源利用...
【澳大利亚将在政府设备上移除TikTok外交部:已向澳方提出严正交涉...
一、招聘条件年龄:25周岁以下(1998年1月1日以后出生);学历要求...
据显示分编程客栈析师罗斯杨(RossYoung)表示,下一代“iPhone17Pr...
1、布衣雅妆妈咪别想逃2、做了坏事别想逃3、总裁前夫不好惹4、情无...
撰文|曹双涛编辑|杨博丞题图|ICPhoto屡屡被传上市的货拉拉,如今终...
央视网报道:我国有近3亿人饱受失眠障碍困扰,近4成居民患有各类失...
集微网消息,3月31日,南京尤品科技有限公司功率模组封装、集成电路...
在张继科事件持续发酵时,很多网友总结了一下事件中的几个人物,一...
澎湃新闻记者李晓青4月3日,雅居乐集团(03383 HK)公告称,3月31...
上海市举行市政府新闻发布会,介绍《上海市加大吸引和利用外资若干...
目前,小红书、抖音等平台的KOL(关键意见领袖)投放和直播带货,以...
根据公务员法、《公务员转任规定》、《公务员公开遴选办法》和《周...
“什么时候轮到你替我坐决定了。”坐在飞机上,窗外一片黑色,只能...
1、[歙]xī收敛,吸进:“将欲歙之,必固张之”。2、2、古同“翕”...
1、所谓一次能源是指直接取自自然界没有经过加工转换的各种能量和资...
“未来十天吉林省气温起伏较大,清明节前后中东部有降水,东南部部...
花团锦簇的春天,与寒冷灰暗的冬天,哪一个更让你感到绝望?或许你...
1、全是描写女子体臭(xiu)的,每首描写身体的一个方面,按照十首的次...
令匈奴闻风丧胆的文官,却因逼死皇孙,悲剧收场!,中国历史上,有着...
1、车厘子的枝必须要是绿色的,越是青绿的则说明保鲜效果越好。新鲜...
金融界4月3日消息六年前的3月31日,豆粕期权正式上市交易,填补了我...
1、你的计算机名字与UG安装文件中的不一致才出现的首先你查看下你的...
1、橡皮擦也是可以选择颜色的,你把黑色改成无色就好。本文分享完毕...
曝北控队将为孙悦办退役仪式老东家北京队再引争议
衣服里的有害物质还有哪些?
不过现在还没有说到打败他们,但我们可以预测一下,路飞一定会打败...
以下是慧博云通在北京时间4月3日14:10分盘口异动快照:4月3日,慧博...