在java中运用正则表达式
很多编程语言都有自己的正则表达式。感觉大致差不多。但也有自己的特点。记录一下正则表达式在java中的用法
一、语法
1、句点符号
“.”是一个通配符,匹配所有字符,包括空格、Tab字符甚至换行符
eg:a.b 匹配 aab或abb或acb或adb等等
2、方括号符号
“[]”是一个范围匹配方式,只有方括号里面指定的字符才参与匹配,在方括号之内你只能匹配单个字符:
eg:[abcd]x 可以匹配ax或bx或cx或dx,而不能匹配abx等
3、圆括号符号
“()”可以指定一组表达式
eg:([abc]*)([01234]*)
4、或符号
“|”基本就是“或”运算。因为方括号只允许匹配单个字符,这里必须使用圆括号“()”。
eg:x(a|b|c)y 或以匹配 xay或xby或xcy
5、否符号
“^”表示不想要匹配的字符
eg:[^0-9]匹配非0到9这些数字的其它字符
6、匹配次数的符号
引用
* 0次或多次
+ 1次或多次
? 0次或1次
{n} 恰好n次
{n,m} 从n次到m次
7、连字符号
“-”有着特殊的意义,它表示一个范围,比如从0到9。
eg:[a-z0-9] 匹配 a到z或0到9的字符
假设我们要在文本文件中搜索美国的社会安全号码。这个号码的格式是999-99-9999。用来匹配它的正则表达式如图一所示。在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从0到9。因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“\”。
图一:匹配所有123-12-1234形式的社会安全号码
假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-9999和999999999都属于正确的格式。这时,你可以在连字符号后面加上“?”数量限定符号,如图二所示:
图二:匹配所有123-12-1234和123121234形式的社会安全号码
下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它的正则表达式前面是数字部分“[0-9]{4}”,再加上字母部分“[A-Z]{2}”。图三显示了完整的正则表达式。
图三:匹配典型的美国汽车牌照号码,如8836KV
8、其它符号
\d 相当 [0-9]
\D 相当 [^0-9]
\w 相当 [A-Z0-9]
\W 相当 [^A-Z0-9]
\s 相当 [\t\n\r\f]
\S 相当 [^\t\n\r\f]
二、一些实例
首先我们来看看IP地址。IP地址有4个字节构成,每一个字节的值在0到255之间,各个字节通过一个句点分隔。因此,IP地址中的每一个字节有至少一个、最多三个数字。图八显示了为IP地址编写的正则表达式:
图八:匹配IP地址
三、在java中处理表达式
Java代码
String patternString = "\\s*\\p{Punct}\\s*";
try{
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()){
//...
}
}catch (PatternSyntaxException e){
//...
}
例子及图片有些是从网上收集的,在些向原创者表示感谢!
链接:http://ll-feng.iteye.com/blog/290874
分享到:
相关推荐
在Java中,正则表达式的使用主要依赖于`java.util.regex`包中的类,如`Pattern`和`Matcher`。 首先,我们来看`Pattern`类。这个类是正则表达式的模板,负责编译和存储正则表达式。一旦正则表达式被编译为`Pattern`...
通过学习和理解这些知识点,开发者可以熟练地在Java中运用正则表达式进行字符串处理,同时也为编写自己的正则表达式解析器打下坚实的基础。正则表达式的灵活性和强大性使得它在数据处理、文本分析以及许多其他领域都...
通过这些知识点,开发者可以熟练地在Java程序中运用正则表达式进行各种文本处理任务,如数据验证、信息提取等。在实际开发中,结合Java的IO和集合框架,正则表达式可以成为强大的文本处理工具。
在IT行业中,日志分析是系统监控和故障排查的重要环节,尤其对于服务器端应用来说更是不可或缺。Java作为广泛使用的编程...在实际操作时,应结合日志的具体格式和需求,灵活运用正则表达式,实现高效、准确的日志分析。
`在正则表达式中具有特殊含义,分别代表零个或多个、一个或多个、零个或一个前一个字符。 4. **范围处理** - 使用方括号`[]`定义字符范围,例如`[a-zA-Z]`表示匹配任何字母。 5. **预定义字符类** - `\s`:匹配...
2. **正则表达式中的特殊字符** 特殊字符是具有特定含义的字符,例如`\`用于转义,使得原本具有特殊意义的字符如`(`、`)`、`.`等变成普通字符。其他特殊字符如`\d`代表数字,`\s`代表空白字符,`\w`代表单词字符...
在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则表达式应用。 1. **HTML中的正则表达式**: 在HTML中,正则表达式通常用于表单验证,例如输入字段(如邮箱、电话号码、手机号码...
句点符号(`.`)是正则表达式中最基础的元素之一,它代表任意单个字符。例如,`t.n`可以匹配所有以`t`开头、以`n`结尾且中间只有一个字符的字符串,如`tan`、`ten`、`tin`等。需要注意的是,句点符号匹配范围广泛,...
元字符在正则表达式中具有特殊含义,例如`.`代表任意字符,`\d`表示数字,`\w`表示字母或数字,`\s`表示空白字符。这些元字符能够帮助我们构建出复杂的模式,以匹配特定类型的字符串。 在Java中,正则表达式通常与`...
在Java中,由于反斜杠`\`在字符串字面量中有特殊含义,因此在正则表达式中需要对其进行转义,即使用`\\`。例如,`\d`实际上是正则表达式中的`\d`,表示匹配数字。如果要在正则表达式中插入一个反斜线字符`\`,则需要...
在正则表达式中,元字符表示在正则表达式中不代表其字面含义,而是具有特别意义的字符。例如句点(.)、中括号字符([])、反斜线(\)等都是元字符。为了使用元字符的字面意思,需要进行转义,例如使用反斜线(\)...
同时,熟练运用正则表达式可以显著提高代码的效率和可读性。在Java和JavaScript中,正则表达式是开发人员不可或缺的工具,无论是在数据验证、文本处理还是文件操作等方面,都能发挥巨大作用。 综上所述,Java和...
正则表达式是一种强大的文本处理工具,用于在Java和JavaScript中进行字符串匹配、搜索、替换等操作。在编程中,正则表达式是处理文本数据不可或缺的一部分,它们使用特殊的字符序列来定义一个模式,该模式可以用来...
Java中的正则表达式是程序开发中处理字符串匹配、查找、替换和判断的强大工具,尤其在处理复杂的文本操作时,正则表达式能显著提高效率。自Java 1.4引入`java.util.regex`包以来,Java程序员可以方便地利用正则...
分组引用是指通过在正则表达式中使用圆括号`()`来定义一组字符或模式,并能够在之后的表达式中通过特定的方式重新引用这些分组。具体而言: - **分组**:使用圆括号`()`将正则表达式的一部分内容括起来形成一个分组...
### Java正则表达式匹配全角空格 在Java编程中,处理字符串是非常常见的需求之一。其中,使用正则表达式来对字符串...通过合理运用正则表达式和Java内置方法,我们可以有效地解决这类问题。希望本文能够对你有所帮助!
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。...同时,通过实践运行这些代码,你将能更好地掌握如何在实际开发环境中运用正则表达式。
在Java中,你可以使用`matches()`方法来检查一个字符串是否完全符合某个正则表达式模式,`split()`方法将字符串根据正则表达式分割成多个子字符串,以及`replaceAll()`方法替换字符串中符合正则表达式的部分。...
正则表达式中的特殊字符需要通过反斜杠`\`进行转义,例如`\.`匹配一个实际的点字符,`\*`匹配星号本身。 ### 5. 分组与引用 使用圆括号`( )`可以创建分组,分组内的模式可以被引用。引用一个分组使用`\数字`,数字...