java正则表达式|每日信息
正则表达式是一种用于匹配字符串的工具,Java提供了一套强大的正则表达式API,可以让我们方便地使用正则表达式进行字符串操作。本文将详细介绍
腾讯云 2023-04-05 10:07:11
正则表达式是一种用于匹配字符串的工具,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提供了一套强大的正则表达式API,可以让我们方便地使用正则表达式进行字符串操作。本文将详细介绍
清朝军机处悬挂“喜报红旌”的牌匾,其实这个匾额早就应该被毁掉,“军机处”是清朝的中枢权力机关,主要的职责是辅佐皇帝处理相关军政要务。在
家风家教是一个家庭最宝贵的财富,是留给子孙后代最好的遗产。苏洵、苏轼、苏辙三父子,以深邃的哲学思想、卓越的政治实践、辉煌
为啥天空是蓝色的?而不是彩虹一般的七彩颜色呢?
1、截至2015年9月,全国共有14个国家级新区,分别是:上海浦东新区、天津滨海新区、重庆两江新区、浙江舟山群岛新区、甘
凌玮科技公告公司以自有资金1000万元于近日在广州市南沙区全资设立了凌玮新材料技术研究广州有限公司新材料研究有限公司将对公司现有技术研发
小朋友去看太原稻田音乐节要不要收费?1 2米以下儿童免票,需监护人携带入场(一名成人仅限携带一名儿童);1米2以上儿童需持票入场;谢绝婴幼
1、【どげざ】【dogeza】◎②【名?サ変自】跪在地上(致敬)。2、低姿态,谦卑地恳求。3、(地面にひれふすこと
中交城投郑州项目正式收到金融机构的授信批复,标志着郑州古荥城市更新(一期)项目融资工作取得重大进展,为项目顺利实施奠定了良好基础。
据OE网站3月31日报道,壳牌正在拆分其可再生能源和低碳部门,作为首席执行官WaelSawan改组的一部分,以提高这家能源巨头的回报。今年年初上任的CE
截至2023年4月4日收盘,中电光谷(00798 HK)报收于0 36港元,上涨4 29%,换手率0 01%,成交量64 8万股,成交额23 09万港元。
牵手融e邦,资本运作很简单。中科磁业(证券代码:301141)于2023年04月03日登陆创业板。4月3日,浙江中科磁业股份有限公司(股票简称:
连云港海州洪门:百年古安梨园迎来盛花期
近日迪士尼在推特上公布了《小美人鱼》真人电影电视预告,“世间怎会有如此美丽之鱼”!有不少网友吐槽,新版小美人鱼形象颠覆了观众的认知,
台州老伯研究这些数字20多年,花10元赚回1000万