您当前的位置: 首页 > 区域经济 > > 内容页

java正则表达式 天天观热点

来源:腾讯云 2023-04-04 11:49:35

正则表达式是一种用于匹配字符串的工具,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
推荐阅读 更多
java正则表达式 天天观热点

正则表达式是一种用于匹配字符串的工具,Java提供了一套强大的正则表达式API,可以让我们方便地使用正则表达式进行字符串操作。本文将详细介绍

2023-04-04
刚果(金)发生沉船事故至少20人死亡-世界通讯

据新华社报导,一艘载有大量货物和乘客的船只3日上午在刚果(金)东部的基伍湖沉没,造成至少20人死亡,另有50人失踪。  刚果(金)地方官员

2023-04-04
价格战下的新能源车市:这三家KPI压力有点大 全球动态

中新经纬4月3日电(牛朝阁)新能源汽车市场继2月实现“开门红”后再度迎来“春天”,多家车企3月实现销量大增。  3月,比亚迪以超20万辆的成绩

2023-04-04
电动自行车头盔,有“标”也要有“法”

4月3日,公安部召开新闻发布会,集中发布百项公共安全行业标准。为有效保障百姓出行安全,市场监管总局会同公安部、工业和信息化部,组织相关

2023-04-04
深康佳A:拟在2023年下半年择机出售楚天龙不超6%股份_天天关注

深康佳A:拟在2023年下半年择机出售楚天龙不超6%股份

2023-04-04
消息称库克将出庭作证,苹果和 MASIMO 的 Apple Watch 专利纠纷进入为期 10 天的陪审团审议阶段-世界今日讯

根据彭博社报道,苹果公司和MASIMO公司正就AppleWatch某些功能和设计是否侵犯,展开激烈的法庭辩诉,双方已进入最后的白热化阶段。

2023-04-04
年报观察 | 中铁建地产开发利润降档-世界速讯

观点网日前,中国铁建公布2022年年度业绩,各项指标取得稳步增长。不过,受2022年地产行业影响,该集团房地产开业业务也面临着利润收缩、毛利

2023-04-04
欧文为什么要斋月?除了欧文布朗,这些巨星也斋月啊! 全球观热点

欧文为什么要斋月?除了欧文布朗,这些巨星也斋月啊!,斋月,约翰逊,奥尼尔,穆罕默德,欧文布朗,美国篮球,凯里·欧文,国际篮球赛事,澳大利亚篮球

2023-04-04
隆基绿能与久事体育、ATP TOUR签署全球战略合作协议

证券时报网讯,据隆基绿能消息,4月3日,隆基绿能科技股份有限公司与上海久事体育产业发展(集团)有限公司、ATPTOUR签署全球战略合作协议:隆基

2023-04-03
英媒:切尔西通过中间人初步接触纳帅,面临热刺竞争

直播吧4月3日讯《每日邮报》消息,切尔西将和热刺竞争邀请纳帅,蓝军已进行初步接触。该媒体指出,前拜仁主帅纳格尔斯曼被视为切尔西新帅最热

2023-04-03