`
haiyang
  • 浏览: 70330 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

正则表达式笔记二

阅读更多

转自:melin http://www.iteye.com/topic/27920

看书时整理的笔记。希望大家补充,成为一个好关于正则表达式的帖子
正则表达式是类型Regexp的对象。它们可以用显式的构造函数建立或者直接用 /pattern/ 和 %r/pattern/这种格式的字符常量构造。之后可以用通过使用 Regexp#match(aString) 或者用匹配操作符 =~(确定匹配)和 !~(否定匹配)与字符串进行比较。

$&接受模式匹配成功的那部分字符。
$`(键盘1左边那个键)接受模式匹配成功前面那一部分字符。
$'接受模式匹配成功后面那部分字符。
例如:

代码
  1. def showRE(a,re)     
  2.   if a =~ re     
  3.     "#{$`}<<#{$&}>>#{$'}"     
  4.   else     
  5.     "no match"     
  6.   end     
  7. end     
<script>render_code();</script>
如果想在字面上出现这些字符., |, (, ), [, {, +, \, ^, $, *和 ?,需要在前面加上一个'\'。

 

正则表达式默认会找到字符串中第一个匹配的情况。
模式 ^ 和 $ 分别匹配一行字符的开始和结束。
字符序列 \A 和一个字符串的开始匹配,\z 和 \Z 和一个字符串的结束匹配。
在方括号"["和"]"之间的字符,用来匹配方括号里面的单个字符。
如果你想在字符类(方括号)里面包含 ] 和 - 的话,它们必须出现在开始。
例如:

代码
  1. a = 'Gamma [Design Patterns-page 123]'     
  2. showRE(a, /[]]/)  输出: Gamma [Design Patterns-page 123<<]>>     
  3. showRE(a, /[B-F]/)   输出: Gamma [<<D>>esign Patterns-page 123]     
  4. showRE(a, /[-]/)   输出: Gamma [Design Patterns<<->>page 123]     
  5. showRE(a, /[0-9]/)  输出: Gamma [Design Patterns-page <<1>>23]     
<script>render_code();</script>
在'['后面紧跟一个 ^ 代表字符类相反的含义: [^a-z]与不是小写字母的字符匹配。

 

字符类缩写
字符序列 [ ... ] 意思
\d [0-9] 数字字符
\D [^0-9] 非数字
\s [\s\t\r\n\f] 空格字符
\S [^\s\t\r\n\f] 非空格字符
\w [A-Za-z0-9_] 单词符号
\W [^A-Za-z0-9_] 非单词符号

重复
r * 匹配0个或多个 r.
r + 匹配1个或多个 r.
r ? 匹配0个或1个 r.
r {m,n} 匹配最少m个,最多n个 r.
r {m,r} 匹配最少m个 r.
重复模式串尽可能匹配多的字符串,在其后面加一个问号“?”,让它匹配最少的。
'|'匹配正则表达式中它左右两边模式中的一个。

基于模式的子串技术
String#sub 和 String#gsub 方法 寻找字符串中匹配它们第一个参数的那部分,然后把那部分用它们的第二个参数代替,前者只替换一次,后者替换所有的。另外一个版本的方法String#sub! 和 String#gsub! 会修改原始字符串。
第二个参数可以是字符串和程序块

分享到:
评论

相关推荐

    正则表达式笔记归纳

    #### 二、正则表达式的语法元素 正则表达式由一系列字符和特殊符号组成,用以匹配字符串中的特定模式。下面是一些基本的语法元素: 1. **字面量**:直接匹配一个或多个字符。 - 示例:`/xx/` 表示匹配字符串“xx...

    6正则表达式笔记[借鉴].pdf

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、搜索、替换和提取信息。它在软件开发中广泛应用于数据验证、文本处理、输入校验等场景。正则表达式通过特殊的语法和运算符,允许程序员构建灵活且...

    [小小明]Python正则表达式全套笔记v0.3(1.8万字干货)

    2 Python正则表达式 2.1 基本概念 正则表达式的本质就是用一些特定字符的组合,组成一个“规则字符串”表达对字符串的一种过滤逻辑,可以很方便的从指定的字符串中提取出我们想要的内容。 2.2 正则匹配规则表 2.2.1...

    正则表达式笔记

    2. **正则表达式基础** - `matches()`方法:直接在`String`对象上调用,用于检验整个字符串是否符合给定的正则表达式。 - `Pattern.compile()`:编译正则表达式为`Pattern`对象,便于后续的匹配操作。 - `Matcher...

    java正则表达式学习笔记

    #### 二、Java正则表达式基本语法 在Java中使用正则表达式前,需要了解一些基本的语法符号: - **特殊字符**:`^` 表示字符串的开始;`$` 表示字符串的结束;`.` 表示任意单个字符。 - **量词**:`*` 表示前面的...

    Python正则表达式笔记

    Python正则表达式笔记 正则表达式是 Python 中的一种强大工具,用于匹配和处理字符串。下面是 Python 正则表达式笔记中的一些重要知识点: 1. 导入模块:在使用正则表达式之前,需要导入 re 模块。import re 2. ...

    正则表达式学习笔记

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

    北风网正则表达式详细讲解学习笔记

    本文主要基于北风网的正则表达式学习笔记,详细讲解了正则表达式的基本概念、常用模式以及在JavaScript中的应用。 首先,身份证号码的验证是一个常见的应用场景。例如,`/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/` ...

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    正则表达式笔记.docx

    python正则表达式笔记

    js正则表达式笔记,直接运行

    标题与描述中的“js正则表达式笔记,直接运行”明确指出这是一份关于JavaScript正则表达式的笔记,其中包含了可以直接执行的代码示例。正则表达式在编程中是一种非常强大的工具,用于处理字符串模式匹配、搜索和替换...

    超经典正则表达式测试工具

    4. **学习正则的学习笔记**:可能包含一份详细的正则表达式学习资料,涵盖了基础概念如元字符、量词、字符类等,以及高级特性如分组、后向引用、预查等,方便用户系统学习。 5. **正则表达式参考手册**:可能提供了...

    正则表达式大全笔记总结

    ### 正则表达式大全笔记总结 #### 一、引言 正则表达式是一种用于匹配字符串的强大工具,在数据处理、文本分析等场景下极为常见。本文将对几个常见的正则表达式应用场景进行总结,包括中国电话号码验证、邮政编码...

    基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip

    基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码....

    正则表达式系统教程.RAR

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。它在编程、数据分析、文本挖掘等领域有着广泛的应用。本教程旨在帮助你深入理解和熟练掌握正则表达式,通过学习,你可以有效地查找、...

    python正则表达式详解笔记,python正则表达式教学.doc

    #### 二、Python中的正则表达式基础 在Python中使用正则表达式时,需要导入`re`模块。这个模块提供了所有必要的正则表达式功能。 - **转义字符问题**:在正则表达式中,`\`常被用作转义字符。这意味着,如果你想要...

    正则表达式笔记+源码!!!!!!

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索替换等场景。在IT行业中,熟练掌握正则表达式是提高工作效率的关键技能之一。 首先,我们来看看...

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

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

Global site tag (gtag.js) - Google Analytics