`
lujiawu12
  • 浏览: 126925 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

正则表达式入门学习笔记

    博客分类:
  • java
阅读更多

  在线测试:  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());

}

 

 

匹配多行字符串

  1. String lines[] = str.splite(“\r?\n”);

  2. 遍历每行进行匹配

分享到:
评论

相关推荐

    JS正则表达式入门笔记实例

    这篇入门笔记实例将带你深入了解正则表达式的使用。 1. **正则表达式基础** - **模式定义**:正则表达式由特殊字符(元字符)和普通字符组成,用于描述文本模式。 - **创建方式**:可以使用`/pattern/flags`或`...

    《Python网络爬虫与信息提取》第三周 网络爬虫之实战 学习笔记(一)Re(正则表达式)库入门

    一、Re(正则表达式)库入门 1、正则表达式的概念 (1)正则表达式的定义 (2)正则表达式的概念 (3)正则表达式的举例 (4)正则表达式的特点 (5)正则表达式在文本处理中十分常用 (6)正则表达式的使用 2、正则...

    Python 爬虫学习笔记之正则表达式

    在Python爬虫学习中,正则表达式的作用不可忽视。当爬虫从网络上获取数据后,常常需要从大量文本内容中准确地提取出有用的信息。使用正则表达式,可以快速地定位到我们感兴趣的文本部分,并将其捕获出来。比如在HTML...

    python学习笔记与简明教程

    ### Python学习笔记与简明教程知识点汇总 #### Python 第1课:安装 - **知识点**: - Python 安装包的选择与下载。 - 安装过程中注意事项,如添加环境变量等。 - 验证Python是否安装成功的方法。 #### Python ...

    Linux学习笔记【博文整理系列】

    学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 ...Linux笔记——正则表达式入门及应用 Linux笔记——linux进程 Linux笔记——SVN命令总结 rpm&yum包管理命令总结 The end wklken

    python学习笔记

    在Python学习笔记中,我们主要探讨以下几个核心知识点: 1. **数据类型与数据结构** Python支持多种数据类型,包括基本的整型、浮点型、字符串等。其中,数据结构是Python的一大特色,特别是容器类型。容器可以...

    SCJP学习笔记.doc

    以下是从给定的学习笔记中提炼出的一些关键知识点: 1. **java.util.Properties的使用** `Properties` 类是Java中用于处理配置文件的关键工具,它继承自`Hashtable`。在示例中,`Properties` 对象`pp`加载了名为...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!

    当年我学PHP时整理的学习笔记

    综上所述,这份学习笔记是一个全面的PHP入门教程,涵盖了从基本语法、数据类型到高级特性的众多主题,对于想要学习PHP的新手来说是一份极其有用的资源。通过逐个学习和实践这些文件中的内容,读者可以逐步建立起自己...

    Requests学习笔记.pdf

    本文档适合作为新手入门requests爬虫教程,可以带你简单了解python基础,Http协议以及异常处理,了解Cookies以及带你掌握正则表达式的使用,最后教你用BeautifulSoup如何去定位元素和爬取页面

    python从入门到高级学习笔记

    这篇"Python从入门到高级学习笔记"涵盖了多个关键知识点,旨在帮助初学者和有一定经验的开发者深入理解Python编程。 首先,从基础学习开始,这部分通常包括变量、数据类型(如整型、浮点型、字符串、布尔型)、流程...

    Perl语言入门学习笔记

    受污染的数据需要通过正则表达式进行净化(untaint)才能使用。对于需要处理用户输入的程序(如CGI脚本),使用taint模式是必要的。 `-d`参数启动Perl调试器,这是一个非常有用的工具,可以帮助开发者跟踪代码执行...

    python学习笔记与简明教程.docx

    #### 正则表达式30分钟入门教程 - **知识点**: - 正则表达式的基础概念 - 如何测试正则表达式 - 常用元字符的解释 - 字符类与分组的概念 - 特殊匹配模式(如贪婪匹配、非贪婪匹配等) - 正则表达式的调试与...

    JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10

    课程《Java零基础至高级应用》从基础入门开始进行系统教学,全套课程精细讲解,高级课程超过其他机构30%的课程量,经过我们全套课程系统学习的同学,可轻松从事Java高级工程师或系统架构师岗位,课程提供全套代码...

    Perl语言入门学习笔记.docx

    以下是对Perl语言入门学习的关键知识点的详细说明: 一、Perl程序的编译与运行 Perl程序不需要预编译,直接通过Perl解释器运行。在命令行中输入`perl my_program`即可执行程序。若希望开启警告模式,可在命令行中...

    MyBatis 3 User Guide Simplified Chinese

    4. **正则表达式30分钟入门教程.doc** 正则表达式在MyBatis中用于动态SQL的编写,尤其是在动态条件构造和数据过滤时。这份文档将帮助你快速掌握正则表达式的基础知识,以便在MyBatis的动态SQL中更好地利用。 5. **...

    java学习笔记,JavaWeb开发中常见问题总结

    【Java学习笔记】JavaWeb开发中常见问题总结 在JavaWeb开发中,开发者经常会遇到各种问题,这些问题涵盖从基础语法到高级设计模式的各个方面。以下是一些关键知识点的概述: 1. **Java基础知识**: - **Classpath...

    JavaScript学习笔记(包含有常用用例)

    JavaScript学习笔记(包含有常用用例)。 个人精心整理,可快速入门,也可当手册使用。 从基础到熟练,还包括有js的正则表达式使用、乱码对策等技巧内容。值得收藏。 更多:http://download.csdn.net/user/daillo/all

    Python 学习笔记.zip

    通过这份“Python学习笔记”,你可以逐步掌握Python编程的各个方面,无论是作为入门指南,还是提升已有技能,都是宝贵的学习资源。对于初学者来说,应从基础开始,扎实地掌握每一个概念;对于有经验的开发者,可以...

Global site tag (gtag.js) - Google Analytics