今日要闻!java正则表达式

2023-04-06 07:21:13 | 来源:腾讯云

正则表达式是一种用于匹配字符串的工具,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,可以更加灵活地运用正则表达式解决实际问题。

上一篇 下一篇

相关新闻

今日要闻!java正则表达式

全球热议:祓魅与赋魅怎么读_祓魅

坔读什么_坔 环球热消息

清河之源治理两项目预计12月建成 天天最资讯

玫瑰糠疹怎么治疗较好_玫瑰糠疹怎么治疗-天天热讯

元宇宙新鲜事|加拿大就数据安全问题开始调查OpenAI ChatGPT停售Plus服务

当兵兵种是自己选择还是部队分配(当兵怎么分配兵种和地区) 前沿热点

张家港经开区(杨舍镇):“三式”助推垃圾分类提质增效 环球信息

《第五人格》疯眼庄园管理员皮肤获取方法 全球热消息

忆亲人、祭先烈、踏青游——全国多地清朗过清明|焦点日报

北京丰台打造90余处“金角银边”,让市民“转角遇美景”

心脉医疗:4月4日融资买入2006.56万元,融资融券余额2.94亿元

全球聚焦:易方达中证医疗ETF净值下跌1.24% 请保持关注

浦发银行(600000):4月4日北向资金增持227.78万股

法国巴黎股市CAC40指数4日下跌 每日热文

最新新闻

今日要闻!java正则表达式

全球热议:祓魅与赋魅怎么读_祓魅

坔读什么_坔 环球热消息

清河之源治理两项目预计12月建成 天天最资讯

玫瑰糠疹怎么治疗较好_玫瑰糠疹怎么治疗-天天热讯

元宇宙新鲜事|加拿大就数据安全问题开始调查OpenAI ChatGPT停售Plus服务

当兵兵种是自己选择还是部队分配(当兵怎么分配兵种和地区) 前沿热点

张家港经开区(杨舍镇):“三式”助推垃圾分类提质增效 环球信息

《第五人格》疯眼庄园管理员皮肤获取方法 全球热消息

忆亲人、祭先烈、踏青游——全国多地清朗过清明|焦点日报

北京丰台打造90余处“金角银边”,让市民“转角遇美景”

心脉医疗:4月4日融资买入2006.56万元,融资融券余额2.94亿元

全球聚焦:易方达中证医疗ETF净值下跌1.24% 请保持关注

浦发银行(600000):4月4日北向资金增持227.78万股

法国巴黎股市CAC40指数4日下跌 每日热文

支付宝芝麻信用中怎么通过找芝麻小游戏来获取芝麻粒_环球聚焦

格力地产:珠海国资委同意公司收购免税集团 并募资不超70亿元_每日快讯

大禹节水:子公司联合中标12.25亿元环境综合治理项目

天津市东丽区政协原党组成员、副主席郑立被查

天天观速讯丨中新网评:做强做优做大数字经济 为数字中国建设注入澎湃动力

小摩增持万物云(02602)39.86万股 每股作价约35.29港元

明阳智能:尊敬的公司公司对外信息披露均按照信息披露要求进行 天天精选

全球热推荐:《浪姐4》初舞台排名公布!张嘉倪、贾静雯垫底,第一名当之无愧

京东PLUS会员破3400万!为什么电商平台都在做「付费会员」?

环球快消息!出处吧1112_出处吧吧

商务部:办好第133届广交会具有重要意义|每日信息

天天快看点丨03_09及13及17及24及32及12

吉林省桦甸市8万台套农机今春投入农业生产 天天微动态

金隅集团:李晓慧因工作变动辞去独立董事职务

前沿资讯!芦溪科技创新驱动县域经济高质量发展