`
rabby
  • 浏览: 164457 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

正则表达式基础

阅读更多

一、句点符号 

假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束。另外,假设有一本英文字典,你可以用正则表达式搜索它的全部内容。要构造出这个正则表达式,你可以使用一个通配符——句点符号“.”。这样,完整的表达式就是“t.n”,它匹配“tan”“ten”“tin”“ton”,还匹配“t#n”“tpn”甚至“t n”,还有其他许多无意义的组合。这是因为句点符号匹配所有字符,包括空格、Tab字符甚至换行符: 

 

正则表达式:t.n

匹配:ten   tan     tin     ton     t n     t#n

 

二、 方括号符号 

为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”“Ten”“tin”“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符: 

 

正则表达式:t[aeio]n

匹配:tan   ten     tin     ton

 

 三、符号

如果除了上面匹配的所有单词之外,你还想要匹配“toon”,那么,你可以使用“|”操作符。“|”操作符的基本意义就是运算。要匹配“toon”,使用“t(a|e|i|o|oo)n”正则表达式。这里不能使用方括号,因为方括号只允许匹配单个字符,这里必须使用圆括号“()”

 

正则表达式:t(a|e|i|o|oo)n

匹配:tan   ten     tin     ton     toon

 

四、 表示匹配次数的符号

下表显示了表示匹配次数的符号,这些符号用来确定紧靠该符号左边的符号出现的次数:

 

符号

次数

*

0次或者多次

+

1次或者多次

?

0次或者1

{n}

刚好n

{n,m}

n次到m(大于等于n次,小于等于m)

 

假设我们要在文本文件中搜索美国的社会安全号码。这个号码的格式是999-99-9999。用来匹配它的正则表达式如下表所示。在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从09。因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“\”  

匹配所有123-12-1234形式的社会安全号码

[0-9]{3}\-[0-9]{2}\-[0-9]{4}

 

假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-9999999999999都属于正确的格式。这时,你可以在连字符号后面加上来限定符号数量

 

匹配所有123-12-1234123121234形式的社会安全号码

[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}

 

下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它的正则表达式前面是数字部分“[0-9]{4}”,再加上字母部分“[A-Z]{2}”。下表显示了完整的正则表达式。

 

匹配典型的美国汽车牌照号码,如8836KV

[0-9]{4}[A-Z]{2}

 

五、符号

“^”符号称为符号。如果用在方括号内,“^”表示不想要匹配的字符。例如下表的正则表达式匹配所有单词,但以“X”字母开头的单词除外。

 

匹配所有单词,但“X”开头的除外

[^X][a-z]+

 

六、 圆括号和空白符号

假设要从格式为“June 26, 1951”的生日日期中提取出月份部分,用来匹配该日期的正则表达式可以如下表所示:

 

匹配所有Moth DD,YYYY格式的日期

[a-z]+\s[0-9]{1,2},\s*[0-9]{4}

“\s”符号是空白符号,匹配所有的空白字符,包括Tab字符。
 
 七、 其它符号

为简便起见,你可以使用一些为常见正则表达式创建的快捷符号。如下表所示:

 

符号

等价正则表达式

\d

[0-9]

\D

[^0-9]

\w

[A-Z0-9]

\W

[^A-Z0-9]

\s

[\t\n\r\f]

\S

[^\t\n\r\f]

 

例如,在前面社会安全号码的例子中,所有出现“[0-9]”的地方我们都可以使用“\d”。修改后的正则表达式如下表所示: 

 

匹配所有123-12-1234格式的社会安全号码:

\d{3}\-\d{2}\-\d{4}

 

1
0
分享到:
评论

相关推荐

    正则表达式基础正则表达式基础

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换...在“正则表达式基础.ppt”这个文件中,应该包含了更详细的讲解,可以帮助你深入理解这一主题。

    Python正则表达式基础

    Python正则表达式基础是学习如何在Python中应用正则表达式的入门指南。正则表达式,或称为REs、regexes、regexpatterns,是能够嵌入到Python中的一个精细、高度专业化的程序语言。通过re模块,程序员得以使用这一...

    groovy正则表达式基础1

    【Groovy正则表达式基础1】 Groovy是一种基于Java平台的动态编程语言,它扩展了Java的功能,包括对正则表达式的处理。在Groovy中,正则表达式是通过`~`运算符或者使用斜杠(`/`)来定义的。这种特性使得Groovy在处理...

    正则表达式测试工具C#版(src)

    1. **C#中的正则表达式基础** - `System.Text.RegularExpressions`命名空间:C#中的正则表达式操作主要基于这个命名空间下的类和方法。 - `Regex`类:这是处理正则表达式的核心类,提供了多种与正则相关的静态方法...

    易语言正则表达式文本替换

    1. **正则表达式基础** - **元字符**:如`.`表示任意字符,`^`表示行首,`$`表示行尾,`\d`代表数字,`\w`代表字母或数字,`\s`代表空白字符。 - **量词**:如`*`表示前面的元素零次或多次,`+`表示一次或多次,`?...

    vb正则表达式实例(正则表达式测试程序)

    1. 正则表达式基础 - **模式匹配**:正则表达式是一种特殊的字符序列,用于定义字符串的搜索模式。 - **元字符**:如 `.`(任意单个字符)、`*`(零个或多个前面的字符)、`+`(一个或多个前面的字符)、`?`(零个...

    通过正则表达式生成数据

    一、正则表达式基础 1. **基本元素**:正则表达式由一系列字符和特殊符号组成,如字母、数字、特殊字符以及元字符(如`.`、`*`、`+`、`?`、`^`、`$`、`|`、`()`、`[]`、`\`等)。 2. **量词**:`*`表示零个或多个...

    正则表达式基础学习笔记

    正则表达式(Regular Expression,简称regex)是用于...通过熟练掌握上述基础知识,你将能够编写出高效且精准的正则表达式,大大提高文本处理的效率。在实际应用中,不断实践和积累经验,是成为正则表达式高手的关键。

    测试正则表达式软件

    首先,让我们了解一下Java中的正则表达式基础。在Java中,`java.util.regex`包提供了对正则表达式的支持。主要涉及以下核心类: 1. **Pattern**:表示一个正则表达式模式,可以通过`Pattern.compile(String regex)`...

    01C#正则表达式基础教程.doc

    **正则表达式基础教程** 1. **本文目标** 本教程旨在为C#开发者提供正则表达式的基础知识,帮助理解正则表达式的概念、语法和常见用途。通过学习,你将能够编写和使用正则表达式进行文本匹配、验证和处理。 2. **...

    vba正则表达式基础

    vba正则表达式基础知识介绍,由浅入深,实例讲解

    详细的C#正则表达式基础教程

    本教程将深入探讨C#中的正则表达式基础,帮助你掌握这一核心技能。 1. **正则表达式简介** 正则表达式(Regular Expression)是一种模式匹配语言,用于在字符串中查找、替换或捕获特定模式。它通过一套特殊语法来...

    Java使用正则表达式提取XML节点内容的方法示例

    但是,正则表达式也是一种非常复杂的技术,需要开发者具备一定的基础知识和经验。 为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、...

    第11.25节 Python正则表达式编译re.compile及正则对象使用.rar

    ### 正则表达式基础 正则表达式(Regular Expression)是一种特殊的字符串序列,用于描述一种模式。在Python中,`re`模块提供了对正则表达式的支持。正则表达式的基本元素包括: 1. 字符匹配:如`.`匹配任意单个...

    IP地址的正则表达式

    ### 正则表达式基础 正则表达式是一种强大的文本处理工具,主要用于字符串搜索、替换以及提取等操作。通过特定的字符组合,正则表达式能够匹配符合某种模式的字符串。在处理IP地址时,正则表达式可以帮助我们验证一...

    C#字符串和正则表达式参考手册

    1. 正则表达式基础:正则表达式是一种模式匹配工具,用于在字符串中搜索、替换和提取特定模式。 2. 正则表达式对象:在C#中,使用`System.Text.RegularExpressions`命名空间下的`Regex`类来处理正则表达式。 3. ...

    使用正则表达式拆分字符串

    1. 正则表达式基础 - **模式匹配**:正则表达式由一系列字符和特殊符号组成,用于定义一个模式,该模式可以匹配特定的字符串。 - **元字符**:如`*`, `+`, `?`, `{}`, `[]`, `\`等,它们具有特殊的含义,用于指定...

    delphi xe 10 正则表达式

    一、正则表达式基础 正则表达式(Regular Expression)是一种特殊的字符串模式,用于在文本中搜索匹配该模式的字符串。它们由一系列字符和特殊符号组成,这些符号代表了不同的匹配规则。例如,`\d`表示任何数字,`^...

    正则表达式.rar || 正则表达式.rar

    一、正则表达式基础 1. 元字符:正则表达式中包含一些特殊字符,如"."(匹配任意字符,除了换行符)、"*"(匹配前一个字符0次或无限次)、"+"(匹配前一个字符1次或无限次)、"?"(匹配前一个字符0次或1次)等,...

Global site tag (gtag.js) - Google Analytics