`

8.正则表达式:字符匹配

阅读更多

.表达式

句点 (.) 匹配字符串中的各种打印或非打印字符,只有一个字符例外。这个例外就是换行符 (\n)。 下面的正则表达式匹配 aac、abc、acc、adc 等等,以及 a1c、a2c、a-c 和 a#c:

/a.c/

 

若要匹配包含文件名的字符串,而句点 (.) 是输入字符串的组成部分,在正则表达式中的句点前面加反斜扛 (\) 字符 。举例来说明,下面的正则表达式匹配 filename.ext:

/filename\.ext/

这些表达式只让您匹配“任何”单个字符。可能需要匹配列表中的特定字符组。例如,可能需要查找用数字表示的章节标题(Chapter 1、Chapter 2 等等)。

 

中括号表达式

若要创建匹配字符组的一个列表,请在方括号([ 和 ])内放置一个或更多单个字符。当字符括在中括号内时,该列表称为“中括号表达式”。 与在任何别的位置一样,普通字符在中括号内表示其本身,即,它在输入文本中匹配一次其本身。大多数特殊字符在中括号表达式内出现时失去它们的意义。不过也有一些例外,如:

  • 如果 ] 字符不是第一项,它结束一个列表。若要匹配列表中的 ] 字符,请将它放在第一位,紧跟在开始 [ 后面。
  • \ 字符继续作为转义符。若要匹配 \ 字符,请使用 \\。

括在中括号表达式中的字符只匹配处于正则表达式中该位置的单个字符。以下正则表达式匹配 Chapter 1、Chapter 2、Chapter 3、Chapter 4 和 Chapter 5:

/Chapter [12345]/

请注意,单词 Chapter 和后面的空格的位置相对于中括号内的字符是固定的。中括号表达式指定的只是匹配紧跟在单词 Chapter 和空格后面的单个字符位置的字符集。这是第九个字符位置。

若要使用范围代替字符本身来表示匹配字符组,请使用连字符 (-) 将范围中的开始字符和结束字符分开。单个字符的字符值确定范围内的相对顺序。下面的正则表达式包含范围表达式,该范围表达式等效于上面显示的中括号中的列表。

/Chapter [1-5]/

当以这种方式指定范围时,开始值和结束值两者都包括在范围内。注意,还有一点很重要,按 Unicode 排序顺序,开始值必须在结束值的前面。

若要在中括号表达式中包括连字符 ,请采用下列方法之一:

  • 用反斜扛将它转义:
    [\-]
  • 将连字符放在中括号列表的开始或结尾 。下面的表达式匹配所有小写字母和连字符:
    [-a-z]
    [a-z-]
  • 创建一个范围,在该范围中,开始字符值小于连字符,而结束字符值等于或大于连字符。下面的两个正则表达式都满足这一要求:
    [!--]
    [!-~]

若要查找不在列表或范围内的所有字符,请将插入符号 (^) 放在列表的开头 。如果插入字符出现在列表中的其他任何位置,则它匹配其本身。下面的正则表达式匹配编号大于 5 的章节标题:

/Chapter [^12345]/

在上面的示例中,表达式在第九个位置匹配 1、2、3、4 或 5 之外的任何数字字符。这样,例如,Chapter 7 就是一个匹配项,Chapter 9 也是一个匹配项。

上面的表达式可以使用连字符 (-) 来表示:

/Chapter [^1-5]/

中括号表达式的典型用途是指定任何大写或小写字母或任何数字的匹配 。下面的表达式指定这样的匹配:

/[A-Za-z0-9]/
分享到:
评论

相关推荐

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

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

    Java根据正则表达式生成字符串—Xeger,automaton

    正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和automaton库来根据正则表达式生成随机字符串。 首先,我们要了解...

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

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

    易语言正则表达式类匹配中文

    在易语言中,这通常涉及到初始化一个类实例,并传入相应的正则表达式字符串。例如,`创建正则表达式`函数可以用来创建一个正则表达式对象,用于后续的匹配和处理。 2. **取正则文本**:这个方法允许获取已创建的...

    02.正则表达式1

    正则表达式(Regular Expression)是编程领域中用于处理字符串的强大工具,它通过特定的语法模式来匹配、查找、替换或提取文本中的特定序列。在.NET框架中,正则表达式提供了一整套API,使得开发者能够高效地处理...

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

    正则表达式,简称为正则,是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。在计算机科学和编程领域,正则表达式是处理文本的基础,广泛应用于数据验证、搜索、替换和提取等多种场景。下面将详细...

    PB实现的正则表达式

    例如,你可以创建一个正则表达式对象,然后使用它来测试字符串是否符合特定模式,或者从字符串中提取匹配的子串。 在实际应用中,使用正则表达式可能涉及到以下步骤: 1. 创建正则表达式:定义你要匹配的模式,例如...

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    正则表达式不包涵特殊字符(除了 指定字符 以外)

    根据题目描述,我们需要构建一个正则表达式来匹配一段字符串,该字符串除了允许出现特定字符(例如下划线 `_`)之外,不允许包含任何其他特殊字符。这里的“特殊字符”通常指的是那些不在字母数字字符集范围内的符号...

    C#正则表达式大全, 判断字符串是否为正整数,中文,英文.....

    正则表达式是指用来描述字符串模式的表达式,通过使用正则表达式,我们可以轻松地实现字符串的匹配、验证、提取和替换等操作。在 C# 中,我们可以使用 System.Text.RegularExpressions 命名空间中的 Regex 类来实现...

    正则表达式.pdf

    1. 字符串匹配:使用正则表达式可以对字符串进行模式匹配,例如匹配Email地址、电话号码、网址等。 2. 字符串提取:使用正则表达式可以从字符串中提取特定的信息,例如提取HTML页面中的链接。 3. 字符串替换:使用...

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5...用正则表达式替换字符串内容,使用正则表达式切割字符串,字符串匹配,将字符串“<msg>ha>ve modif<ied <<new.&txt”中的>替换为>将<替换为<将&替换为2. 等等情况!

    正则表达式大全.docx

    正则表达式是计算机科学中的一种模式匹配手法,用于描述或匹配一系列符合某个句法规则的字符串。它广泛应用于字符串处理、表单验证等领域,具有很高的实用价值。在下面,我们将收集一些常用的正则表达式,以备...

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

    - **构造函数**:创建`Regex`对象时,需要传入一个正则表达式字符串,如`New Regex("模式")`。 - **方法**: - `Match`:执行一次匹配,返回`Match`对象,如果未找到匹配,返回`Match.Empty`。 - `Matches`:...

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

    Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧。 一、正则表达式简介 正则表达式是指一...

    Python正则表达式基础

    2. 匹配模式:正则表达式是由特殊字符(如星号*、加号+、问号?等)和普通字符组成的字符串,用来描述一种字符模式。例如,`\d+`表示一个或多个数字。 3. `match()`函数:用于检查字符串是否以指定的模式开始。如果...

    正则表达式生成工具 正则表达式

    正则表达式(Regular Expression,简称regex)是一种用于匹配字符串的强大工具,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种特定的语法来定义一个模式,然后检查这个模式是否存在于输入的字符串中...

Global site tag (gtag.js) - Google Analytics