`
linvar
  • 浏览: 259570 次
  • 性别: Icon_minigender_1
  • 来自: 未定
社区版块
存档分类
最新评论

java 正则表达式

    博客分类:
  • java
阅读更多
正则表达式的关键是
创建用于"在源字符串中匹配出某些字符串"的表达式(字符串)(regex)
源字符串String input = "abcdefg";
表达式String regex = "d.*";

1.正则表达式的字符结构:
1.1 x: 匹配x这个字符
1.2 \\: 匹配反斜杠\
1.3 \t, \n, \r, \e 分别匹配tab健, newline键, 回车键, 回格键

2.正则表达式的字符类结构(匹配单个字符)
2.1 [abc]: 匹配a,b 或者c
2.2 [^abc]: 匹配除了a,b,c的其他字符
2.3 [a-zA-Z]: 匹配从a到z,或A到Z的字符
2.4 [a-d[m-p]]: 匹配a到d,或m到p的字符
2.5 [a-z&&[def]]: (交集)匹配d,e或f
2.6 [a-z&&[^bc]]: (子集)匹配a到z,除了b,c
2.7 [a-z&&[^m-p]]: 类似(2.6)

3.预定义的特殊字符类(匹配单个字符)
3.1 . (顿号)匹配任意字符,可包括或不包括换行符(由dotall模式决定)
3.2 \d 匹配一个数字,相当于[0-9]
3.3 \D 匹配不是数字的一个字符, 相当于[^0-9]
3.4 \s 匹配一个空格,相当于[ \t\n\x0B\f\r]
3.5 \S 相当于[^\s]
3.6 \w 匹配一个单词字符, 相当于[a-zA-Z_0-9]
3.7 \W 相当于[^\w]

4.边界匹配
4.1 ^ 行首
4.2 $ 行尾
4.3 \b 字符边界
4.4 \B 不是字符边界
4.5 \A The beginning of the input
4.6 \G The end of the previous match
4.7 \Z The end of the input but for the final terminator, if any
4.8 \z The end of the input


5.贪婪量词
5.1 X? 一次或0次
5.2 X* 0次或多次
5.3 X+ 一次以上
5.4 X{n} n次
5.5 X{n,} n次以上
5.6 X{n,m} n到m次

6.懒惰量词
   相应地在贪婪量词后加上?号
   如 X??, X{n,}?


7.逻辑操作
7.1 XY  X followed by Y
7.2 X|Y Either X or Y
7.3 (X) X, as a capturing group
Back references
\n Whatever the nth capturing group matched
(?:X) X, as a non-capturing group


8.Backslashes, escapes, and quoting
用于escapes的反斜杠\在java的字符串解析中有特殊含义(也作为内部的escapse)
所以要使正则表达式中的"\"留下, 还需要再加一个\
例如: Pattern.compile("\\s.+\\*");

注:如果正则表达式字符串中包含特殊字符,需要使用\转义
如 . * ( ) { } | ? + ^ $ \ - ,

9.Line terminators(换行符)
9.1 A newline (line feed) character ('\n'),
9.2 A carriage-return character followed immediately by a newline character ("\r\n"),
9.3 A standalone carriage-return character ('\r'),

默认情况下, 正则表达式^ $会忽略换行符, 只匹配源字符串的首和尾(边界).
所以正则表达式"^.*$"并不能匹配多行的文本text, 因为默认情况下(.)不匹配换行符,
使用dotall模式"(?s)^.*$"就可以匹配全文本了.
但是如果启用多行模式(multiline)(?m)
^匹配整个源字符串首和每个换行符后面(除了源字符串最后那个),
$则匹配每个换行符前和整个源字符串尾.
例如 "(?m)^\\s*//.*$" 匹配每行的注释//...

[b]10.java相关的正则表达式

Pattern表示正则表达式对象.
Mather表示匹配结果


String sourceInput = "i'am text..\n\t你好...城ssllk";
Pattern p = Pattern.compile("(?m)^\\s*//.*$");
Mather m = p.mather(sourceInput);
//Mather主要的方法
m.find();
m.group(int);
m.matches();

//字符串相关的正则表达式
sourceInput.replaceAll(regex,replace);
//相当于
Pattern.compile(regex).mather(sourceInput).replaceAll(replace);

sourceInput.replaceAll("^(.*)/.*$","$1");
分享到:
评论

相关推荐

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    java正则表达式验证IP地址

    Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

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

    本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...

    JAVA正则表达式大全

    以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...

    Java正则表达式.ppt

    Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...

    Java 正则表达式库

    Java正则表达式库是Java开发中不可或缺的一部分,它为开发者提供了一种强大的文本匹配工具。在Java中,正则表达式(Regular Expression)是一种模式匹配语言,用于处理字符串操作,如查找、替换或提取特定模式的数据...

    Java正则表达式测试工具

    Java正则表达式测试工具是面向开发者和爱好者的一款实用程序,它可以帮助用户验证和调试他们的正则表达式。在Java编程环境中,正则表达式是一个强大的字符串处理工具,广泛用于数据验证、文本搜索和替换等任务。这款...

    使用Java正则表达式实现一个简单的身份证号码验证

    ### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...

    常用java正则表达式

    ### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...

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

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。这个“java正则表达式截取demo”提供了一个可以直接运行的示例,帮助开发者理解如何在Java中使用正则...

    java正则表达式教程html版带目录

    Java正则表达式是Java编程语言中的一个强大工具,它用于模式匹配和字符串处理,尤其在数据验证、文本检索和替换等方面发挥着重要作用。本教程是专为初学者设计的HTML版,旨在帮助读者快速掌握Java正则表达式的概念和...

    java正则表达式使用例子

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...

    Java正则表达式应用总结

    Java正则表达式是编程语言Java中用于处理字符串和文本的强大工具。它允许开发者通过模式匹配来执行复杂的文本分析和操作。在Java中,正则表达式的操作主要涉及两个核心类:`java.util.regex.Matcher`和`java.util....

    Java正则表达式详细讲解

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...

    强大的JAVA正则表达式处理包jakarta-oro

    Java正则表达式是编程语言中的一个重要组成部分,用于文本处理和模式匹配。Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会开发的一个强大的Java正则表达式库,它为开发者提供了更为灵活和...

    Java 正则表达式 图片版

    Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~

Global site tag (gtag.js) - Google Analytics