简析java中的正则表达式
2022/6/1 1:19:41
本文主要是介绍简析java中的正则表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、简介
正则表达式可以用字符串来描述规则,并用来匹配字符串。
使用正则表达式的好处有哪些?一个正则表达式就是一个描述规则的字符串,所以,只需要编写正确的规则,我们就可以让正则表达式引擎去判断目标字符串是否符合规则。
正则表达式是一套标准,它可以用于任何语言。Java标准库的java.util.regex包内置了正则表达式引擎,在Java程序中使用正则表达式非常简单。
二、匹配规则
正则表达式的匹配规则是从左到右按规则匹配。我们首先来看如何使用正则表达式来做精确匹配。
对于正则表达式abc来说,它只能精确地匹配字符串"abc",不能匹配"ab","Abc","abcd"等其他任何字符串。
如果正则表达式有特殊字符,那就需要用\转义。例如,正则表达式a\&c,其中\&是用来匹配特殊字符&的,它能精确匹配字符串"a&c",但不能匹配"ac"、"a-c"、"a&&c"等。
要注意正则表达式在Java代码中也是一个字符串,所以,对于正则表达式a\&c来说,对应的Java字符串是"a\\&c",因为\也是Java字符串的转义字符,两个\\实际上表示的是一个\。
精确匹配实际上用处不大,因为我们直接用String.equals()就可以做到。大多数情况下,我们想要的匹配规则更多的是模糊匹配。我们可以用.匹配一个任意字符。如果我们只想匹配0~9这样的数字,可以用\d匹配。用\w可以匹配一个字母、数字或下划线,w的意思是word。用\s可以匹配一个空格字符,注意空格字符不但包括空格,还包括tab字符(在Java中用\t表示)。用\d可以匹配一个数字,而\D则匹配一个非数字。
例如,java\w可以匹配:
- "javac",因为\w可以匹配英文字符c;
- "java9",因为\w可以匹配数字字符9;。
- "java_",因为\w可以匹配下划线_。
修饰符*可以匹配任意个字符,包括0个字符。修饰符+可以匹配至少一个字符。修饰符?可以匹配0个或一个字符。如果我们想精确指定n个字符怎么办?用修饰符{n}就可以。如果我们想指定匹配n~m个字符怎么办?用修饰符{n,m}就可以。如果没有上限,那么修饰符{n,}就可以匹配至少n个字符。
例如,A\d{3,5}可以精确匹配:
- A380:因为\d{3,5}可以匹配3个数字380;
- A3800:因为\d{3,5}可以匹配4个数字3800;
- A38000:因为\d{3,5}可以匹配5个数字38000。
三、复杂匹配规则
用正则表达式进行多行匹配时,我们用^表示开头,$表示结尾。例如,^A\d{3}$,可以匹配"A001"、"A380"。
使用[...]可以匹配范围内的字符,例如,[123456789]可以匹配1~9,还有一种写法,直接写[1-9]就可以。[...]还有一种排除法,即不包含指定范围的字符。假设我们要匹配任意字符,但不包括数字,可以写[^0-9]*。
用|连接的两个正则规则是或规则,例如,AB|CD表示可以匹配AB或CD。可以使用括号更改正则表达式的计算顺序。
这篇关于简析java中的正则表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南