在线测试: http://gskinner.com/RegExr/
变体
单字符转义:
如 . --- \.
块转义: ()
---- \Q()\E
不区分大小写
: wuzhong -- (?i)WUZHONG
匹配多个字符之一
十六进制字符
: [a-fA-F0-9] OR [a-fA-F\d]
OR (?!)[A-F\d]
非十六进制字符:
[^A-Fa-f0-9]
匹配任意字符
: . (不包括换行符)
(?s ). (包括换行符在内的任意字符)
匹配文本行开始或结束
一行的开始和结束
:^alpha$
文本的开始和结束
: \Aalpha\Z
匹配整个单词
\bcat\b
my cat is brown acata
匹配多个选择分支之一
\bcat\b|dog
\b(aaaa|bbbb|cccc)\b
再次匹配先前匹配的文本
\d\d(\d\d)-\1-\1
>>>> 2008-08-08 2009-09-10
匹配重复次数
固定次数 :
\d{100}
可变次数
\d{1,100}
无限次数重复
\d{1,}
=== \d+
\d{0,}
=== \d*
\d{0,1}
=== \d?
贪婪问题
惰性量词: *?;
+? ; ?? ; {1,100}?
非贪婪
<p>.*?</p>
<p>hello<em>world</em></p><p>welcome</p>
贪婪
<p>.*</p>
<p>hello<em>world</em></p><p>welcome</p>
消除不必要的回溯
占有量词 : *+
; ++ ; ?+ ; {1,100}+
java正则表达式编程
[$”’\n\d/\\]
>> [$\”’\n\\d/\\\\]
Pattern
regex = Pattern.compile(“[$\”’\n\\d/\\\\]”);
Pattern
regex = Pattern.compile(“[$\”’\n\\d/\\\\]”,
Pattern.COMMENTS|Pattern.CASE_INSENSITIVE);
Matcher
regexMatcher = regex.matcher(subjectString)
regexMatcher.reset(anotherString)
/**
* 如果检验一个正则表达式是否是部分或整体匹配一个字符串,可以按如下方式
*
* 注:
不要调用String.matches()
, Patter.matches() , Matcher.matches(),它们都要求
* 匹配整个字符串,效率不高
*/
@Test
public
void
test(){
Pattern
pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Matcher
matcher = pattern.matcher("abc1234567ABCDEFG");
System.out.println(matcher.find());
System.out.println(matcher.group());
System.out.println(matcher.start()
+ ">>>"
+ matcher.end());
//再次调用,查找下一个匹配
System.out.println(matcher.find());
System.out.println(matcher.group());
System.out.println(matcher.start()
+ ">>>"
+ matcher.end());
System.out.println(matcher.replaceFirst("HELLOWROLD"));
//设置匹配字符串的范围
matcher.reset("ab1cda");
matcher.region(1,
100);
System.out.println(matcher.find());
//匹配不到,会抛异常
//System.out.println(matcher.group());
}
匹配多行字符串
-
String
lines[] = str.splite(“\r?\n”);
-
遍历每行进行匹配
分享到:
相关推荐
这篇入门笔记实例将带你深入了解正则表达式的使用。 1. **正则表达式基础** - **模式定义**:正则表达式由特殊字符(元字符)和普通字符组成,用于描述文本模式。 - **创建方式**:可以使用`/pattern/flags`或`...
一、Re(正则表达式)库入门 1、正则表达式的概念 (1)正则表达式的定义 (2)正则表达式的概念 (3)正则表达式的举例 (4)正则表达式的特点 (5)正则表达式在文本处理中十分常用 (6)正则表达式的使用 2、正则...
在Python爬虫学习中,正则表达式的作用不可忽视。当爬虫从网络上获取数据后,常常需要从大量文本内容中准确地提取出有用的信息。使用正则表达式,可以快速地定位到我们感兴趣的文本部分,并将其捕获出来。比如在HTML...
### Python学习笔记与简明教程知识点汇总 #### Python 第1课:安装 - **知识点**: - Python 安装包的选择与下载。 - 安装过程中注意事项,如添加环境变量等。 - 验证Python是否安装成功的方法。 #### Python ...
学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 ...Linux笔记——正则表达式入门及应用 Linux笔记——linux进程 Linux笔记——SVN命令总结 rpm&yum包管理命令总结 The end wklken
在Python学习笔记中,我们主要探讨以下几个核心知识点: 1. **数据类型与数据结构** Python支持多种数据类型,包括基本的整型、浮点型、字符串等。其中,数据结构是Python的一大特色,特别是容器类型。容器可以...
以下是从给定的学习笔记中提炼出的一些关键知识点: 1. **java.util.Properties的使用** `Properties` 类是Java中用于处理配置文件的关键工具,它继承自`Hashtable`。在示例中,`Properties` 对象`pp`加载了名为...
Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!
综上所述,这份学习笔记是一个全面的PHP入门教程,涵盖了从基本语法、数据类型到高级特性的众多主题,对于想要学习PHP的新手来说是一份极其有用的资源。通过逐个学习和实践这些文件中的内容,读者可以逐步建立起自己...
本文档适合作为新手入门requests爬虫教程,可以带你简单了解python基础,Http协议以及异常处理,了解Cookies以及带你掌握正则表达式的使用,最后教你用BeautifulSoup如何去定位元素和爬取页面
这篇"Python从入门到高级学习笔记"涵盖了多个关键知识点,旨在帮助初学者和有一定经验的开发者深入理解Python编程。 首先,从基础学习开始,这部分通常包括变量、数据类型(如整型、浮点型、字符串、布尔型)、流程...
受污染的数据需要通过正则表达式进行净化(untaint)才能使用。对于需要处理用户输入的程序(如CGI脚本),使用taint模式是必要的。 `-d`参数启动Perl调试器,这是一个非常有用的工具,可以帮助开发者跟踪代码执行...
#### 正则表达式30分钟入门教程 - **知识点**: - 正则表达式的基础概念 - 如何测试正则表达式 - 常用元字符的解释 - 字符类与分组的概念 - 特殊匹配模式(如贪婪匹配、非贪婪匹配等) - 正则表达式的调试与...
课程《Java零基础至高级应用》从基础入门开始进行系统教学,全套课程精细讲解,高级课程超过其他机构30%的课程量,经过我们全套课程系统学习的同学,可轻松从事Java高级工程师或系统架构师岗位,课程提供全套代码...
以下是对Perl语言入门学习的关键知识点的详细说明: 一、Perl程序的编译与运行 Perl程序不需要预编译,直接通过Perl解释器运行。在命令行中输入`perl my_program`即可执行程序。若希望开启警告模式,可在命令行中...
4. **正则表达式30分钟入门教程.doc** 正则表达式在MyBatis中用于动态SQL的编写,尤其是在动态条件构造和数据过滤时。这份文档将帮助你快速掌握正则表达式的基础知识,以便在MyBatis的动态SQL中更好地利用。 5. **...
【Java学习笔记】JavaWeb开发中常见问题总结 在JavaWeb开发中,开发者经常会遇到各种问题,这些问题涵盖从基础语法到高级设计模式的各个方面。以下是一些关键知识点的概述: 1. **Java基础知识**: - **Classpath...
JavaScript学习笔记(包含有常用用例)。 个人精心整理,可快速入门,也可当手册使用。 从基础到熟练,还包括有js的正则表达式使用、乱码对策等技巧内容。值得收藏。 更多:http://download.csdn.net/user/daillo/all
通过这份“Python学习笔记”,你可以逐步掌握Python编程的各个方面,无论是作为入门指南,还是提升已有技能,都是宝贵的学习资源。对于初学者来说,应从基础开始,扎实地掌握每一个概念;对于有经验的开发者,可以...