`
ll_feng
  • 浏览: 389904 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在java中运用正则表达式

    博客分类:
  • j2se
阅读更多
很多编程语言都有自己的正则表达式。感觉大致差不多。但也有自己的特点。记录一下正则表达式在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中处理表达式
String patternString = "\\s*\\p{Punct}\\s*";
try{
    Pattern pattern = Pattern.compile(patternString);
    Matcher matcher = pattern.matcher(input);
    if (matcher.matches()){
      //...
    }
}catch (PatternSyntaxException e){
    //...
}





例子及图片有些是从网上收集的,在些向原创者表示感谢!


  • 大小: 3.4 KB
  • 大小: 3.7 KB
  • 大小: 2.3 KB
  • 大小: 4 KB
分享到:
评论

相关推荐

    java正则表达式匹配工具

    在Java中,正则表达式的使用主要依赖于`java.util.regex`包中的类,如`Pattern`和`Matcher`。 首先,我们来看`Pattern`类。这个类是正则表达式的模板,负责编译和存储正则表达式。一旦正则表达式被编译为`Pattern`...

    java编写的正则表达式解析器

    通过学习和理解这些知识点,开发者可以熟练地在Java中运用正则表达式进行字符串处理,同时也为编写自己的正则表达式解析器打下坚实的基础。正则表达式的灵活性和强大性使得它在数据处理、文本分析以及许多其他领域都...

    java正则表达式.zip

    通过这些知识点,开发者可以熟练地在Java程序中运用正则表达式进行各种文本处理任务,如数据验证、信息提取等。在实际开发中,结合Java的IO和集合框架,正则表达式可以成为强大的文本处理工具。

    使用Java正则表达式分析处理日志

    在IT行业中,日志分析是系统监控和故障排查的重要环节,尤其对于服务器端应用来说更是不可或缺。Java作为广泛使用的编程...在实际操作时,应结合日志的具体格式和需求,灵活运用正则表达式,实现高效、准确的日志分析。

    Java正则表达式 Java 正则表达式

    `在正则表达式中具有特殊含义,分别代表零个或多个、一个或多个、零个或一个前一个字符。 4. **范围处理** - 使用方括号`[]`定义字符范围,例如`[a-zA-Z]`表示匹配任何字母。 5. **预定义字符类** - `\s`:匹配...

    JAVA正则表达式大全

    2. **正则表达式中的特殊字符** 特殊字符是具有特定含义的字符,例如`\`用于转义,使得原本具有特殊意义的字符如`(`、`)`、`.`等变成普通字符。其他特殊字符如`\d`代表数字,`\s`代表空白字符,`\w`代表单词字符...

    常用正则表达式HTML,JAVA合集

    在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则表达式应用。 1. **HTML中的正则表达式**: 在HTML中,正则表达式通常用于表单验证,例如输入字段(如邮箱、电话号码、手机号码...

    常用java正则表达式

    句点符号(`.`)是正则表达式中最基础的元素之一,它代表任意单个字符。例如,`t.n`可以匹配所有以`t`开头、以`n`结尾且中间只有一个字符的字符串,如`tan`、`ten`、`tin`等。需要注意的是,句点符号匹配范围广泛,...

    java_zhengze.rar_正则表达式_正则表达式 java

    元字符在正则表达式中具有特殊含义,例如`.`代表任意字符,`\d`表示数字,`\w`表示字母或数字,`\s`表示空白字符。这些元字符能够帮助我们构建出复杂的模式,以匹配特定类型的字符串。 在Java中,正则表达式通常与`...

    Java正则表达式应用总结

    在Java中,由于反斜杠`\`在字符串字面量中有特殊含义,因此在正则表达式中需要对其进行转义,即使用`\\`。例如,`\d`实际上是正则表达式中的`\d`,表示匹配数字。如果要在正则表达式中插入一个反斜线字符`\`,则需要...

    正则表达式必知必会v_1.0.pdf

    在正则表达式中,元字符表示在正则表达式中不代表其字面含义,而是具有特别意义的字符。例如句点(.)、中括号字符([])、反斜线(\)等都是元字符。为了使用元字符的字面意思,需要进行转义,例如使用反斜线(\)...

    Java JS正则表达式大全

    同时,熟练运用正则表达式可以显著提高代码的效率和可读性。在Java和JavaScript中,正则表达式是开发人员不可或缺的工具,无论是在数据验证、文本处理还是文件操作等方面,都能发挥巨大作用。 综上所述,Java和...

    java \javascript 正则表达式

    正则表达式是一种强大的文本处理工具,用于在Java和JavaScript中进行字符串匹配、搜索、替换等操作。在编程中,正则表达式是处理文本数据不可或缺的一部分,它们使用特殊的字符序列来定义一个模式,该模式可以用来...

    Java中的正则表达式 -- 示例详解

    Java中的正则表达式是程序开发中处理字符串匹配、查找、替换和判断的强大工具,尤其在处理复杂的文本操作时,正则表达式能显著提高效率。自Java 1.4引入`java.util.regex`包以来,Java程序员可以方便地利用正则...

    java-正则表达式-分组引用介绍

    分组引用是指通过在正则表达式中使用圆括号`()`来定义一组字符或模式,并能够在之后的表达式中通过特定的方式重新引用这些分组。具体而言: - **分组**:使用圆括号`()`将正则表达式的一部分内容括起来形成一个分组...

    java正则表达式匹配全角空格

    ### Java正则表达式匹配全角空格 在Java编程中,处理字符串是非常常见的需求之一。其中,使用正则表达式来对字符串...通过合理运用正则表达式和Java内置方法,我们可以有效地解决这类问题。希望本文能够对你有所帮助!

    java正则表达式截取demo下载即可运行

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。...同时,通过实践运行这些代码,你将能更好地掌握如何在实际开发环境中运用正则表达式。

    java-正则表达式-正则表达式元素介绍

    在Java中,你可以使用`matches()`方法来检查一个字符串是否完全符合某个正则表达式模式,`split()`方法将字符串根据正则表达式分割成多个子字符串,以及`replaceAll()`方法替换字符串中符合正则表达式的部分。...

    Java正则表达式快速学习

    正则表达式中的特殊字符需要通过反斜杠`\`进行转义,例如`\.`匹配一个实际的点字符,`\*`匹配星号本身。 ### 5. 分组与引用 使用圆括号`( )`可以创建分组,分组内的模式可以被引用。引用一个分组使用`\数字`,数字...

Global site tag (gtag.js) - Google Analytics