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

正则表达式学习

 
阅读更多
   前一段时间看了一下html解析,发现这个网站(http://htmlparser.sourceforge.net/)还不错,
   推荐给大家。有需求的同学,可以自个儿深研一番,当然如果有更好的也别忘了推荐给我。:-)
  
   另外我还看了一下java中的正则表达式,发现正则强大是很强大就是掌握起来太麻烦了。
   比如在java中“\” 本身就是一个转义符, 所以要表示一个'\',则必须在其前面再加一个'\',
   eg.
String s0 = "good\\nafternoon";
System.out.println(s0);
s0 = s0.replaceAll("\\\\n","\n");
System.out.println(s0);
  同时因为'\'是转义字符,是特殊字符,所以在替换的时候你不能直接使用它,
  eg.
String s = "\\\\";
s = s.repacleAll("\\\\\\\\","\\\\")
//s = s.replaceAll("\\\\\\\\","\\");  -- is wrong
System.out.println(s);
  为了将两个'\'换成一个'\',写了如此多的'\',是不是太麻烦了点。 :-(

  另外,在Jdk文档中对于Greedy quantifiers ,Reluctant quantifiers ,Possessive quantifiers 的解释
  基本一样,从字面上是很难看出区别的,下面通过一个例子来说明三者之间的异同。
  --------------------------------(以下内容来自网上资料,并通过本机实践证明)-----------------------------
Greedy quantifiers
字串 "xfooxxxxxxfoo"
pattern ".*foo"
結果 xfooxxxxxxfoo
Greedy字面翻譯是貪婪,也就是盡可能的取字串,其實最貪婪的是第三種方法,因為Greedy還會把之後相符的資料留下來,Possessive吃的連骨頭都不剩。

Reluctant quantifiers
字串 "xfooxxxxxxfoo"
pattern ".*?foo"
結果 xfoo 和 xxxxxxfoo
Reluctant字面翻譯是勉強,也就是抓最小可能,像這個例子,第一次抓一個x之後發現後面和foo相符,就得第一個結果,然後一直到最後又得到第二個結果。

Possessive quantifiers
字串 "xfooxxxxxxfoo"
pattern ".*+foo"
結果 沒有相符合資料,因為所有的資料都與"."比較相符,最後沒有剩下的字串可以和foo做比較,所以沒有符合資料。

------------------------------------------------------------------------------------------------------
附上我写的验证代码:

//String pattern1 = ".*foo";
String pattern1 = ".*?foo";
//String pattern1 = ".*+foo";
Pattern patt1 = Pattern.compile(pattern1);

String input1 = "xfooxxxxxxfoo";

Matcher matcher1 = patt1.matcher(input1);

while (matcher1.find())
{
System.out.printf("Found '%s' at (%d,%d)%n",
  matcher1.group(), matcher1.start(),
  matcher1.end());
}




分享到:
评论

相关推荐

    正则表达式学习工具

    本“正则表达式学习工具”是专为C#初学者和开发者设计的,旨在提供一个方便的环境来学习和测试正则表达式。 首先,我们来了解C#中的正则表达式基础。C#中的正则表达式操作主要通过`System.Text.RegularExpressions`...

    正则表达式学习资料以及练习项目代码很多

    这个压缩包包含了丰富的正则表达式学习资源,适合有一定基础的初学者深入学习。 1. **基础概念** - **模式匹配**:正则表达式定义了一种模式,可以用来匹配符合该模式的字符串。 - **元字符**:如`.`代表任意单个...

    正则表达式学习资料整理

    在这个“正则表达式学习资料整理”中,我们主要探讨的是如何理解和运用正则表达式进行四则运算相关的匹配。 首先,我们需要了解正则表达式的基本构成元素。它们包括: 1. **字符类**:用方括号`[]`定义,如 `[0-9]...

    正则表达式全解及正则表达式学习心得

    正则表达式全解及正则表达式学习心得 正则表达式是字符串模式匹配的强大工具,掌握正则表达式可以让开发者更方便地处理字符串数据。本文将对正则表达式的基本概念、元字符、模式匹配、量词、分组、字符类、边界匹配...

    java正则表达式学习

    【Java正则表达式学习】 Java正则表达式是Java编程语言中用于处理字符串的强大工具,自JDK1.4版本起被引入。它源于PHP并迅速流行,主要用于复杂字符串的验证和处理。正则表达式可以高效地完成对字符串的检查、分割...

    正则表达式学习手册

    ### 正则表达式学习手册知识点总结 #### 1. 引言 正则表达式是一种强大的文本处理工具,能够帮助用户实现字符串的查找、替换等功能。正则表达式的应用场景非常广泛,尤其在编程领域中不可或缺。对于初学者来说,...

    正则表达式学习书PDF

    在"正则表达式学习书PDF"这个资源中,包含两本关于正则表达式的教程: 1. **《正则表达式必知必会》** 这本书通常会深入浅出地介绍正则表达式的概念和用法,包括基本字符类(如字母、数字、空白符)、量词(如*、+...

    正则表达式学习视频

    在正则表达式的简单语法部分,你将学习到: 1. 基本字符匹配:如点号(.)匹配任意单个字符,星号(*)表示前面的元素可以重复零次或多次。 2. 字符集合:使用方括号([])定义一个字符集,如[a-z]匹配所有小写字母。...

    易语言正则表达式学习工具源码

    易语言正则表达式学习工具源码是一款专为学习易语言和正则表达式设计的软件开发资源。正则表达式(Regular Expression)是用于处理字符串的强大工具,它在编程中有着广泛的应用,如文本搜索、替换、数据验证等。...

    正则表达式学习课件PPT

    本课件“正则表达式学习课件PPT”旨在为初学者提供一个基础的正则表达式学习平台,特别地,通过使用C#语言来演示其应用。 首先,我们需要理解正则表达式的基础语法。正则表达式由一系列特殊字符和普通字符组成,...

    正则表达式学习资料

    在这个"正则表达式学习资料"中,我们将深入探讨正则表达式的基本概念、语法以及在Java中的应用。 1. 正则表达式基础: - **模式匹配**:正则表达式是由字符和特殊符号组成的字符串,用于定义一种模式,可以用来...

    正则表达式学习,常用的正则表达式

    正则表达式学习 正则表达式是计算机科学中的一种形式语言,它通过字符串操作来描述、匹配和处理字符串的方式。正则表达式通常用于文本搜索、匹配、替换、筛选等操作。 正则表达式简介 正则表达式的主要功能是对...

    正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe

    正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式...

    正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...

    正则表达式 必知必会 pdf

    它的出版,为程序员和开发人员提供了一本实用性强的正则表达式学习资源。本书基于各种实用场景,从基础的文本匹配开始,逐步深入到回溯引用、条件性求值以及前后查找等高级特性,使得读者能够系统、全面地掌握正则...

    易语言正则表达式学习工具

    易语言正则表达式学习工具是一款专为学习和实践正则表达式设计的应用程序,它以易语言作为编程基础,提供了友好的用户界面和丰富的功能,帮助初学者和专业人士更好地理解和掌握正则表达式的核心概念。 正则表达式,...

    正则表达式转换工具

    - 工具支持:利用在线正则表达式测试网站,如Regex101,进行实时调试和学习。 综上所述,"正则表达式转换工具"是处理文本数据的强大辅助,它简化了正则表达式的构造过程,使得非专业人士也能方便地利用正则表达式...

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    为了进一步学习,可以查阅Python官方文档的`re`模块,以及各种正则表达式在线教程和练习网站。 通过这个简短的教程,你应该对Python中的正则表达式有了初步的了解。继续实践和探索,将有助于你更好地掌握这一强大...

Global site tag (gtag.js) - Google Analytics