3.2.2.1 匹配单个字符

最先开始是匹配单个字符。可采用集中方式做到:以一般字符、以转义的 meta 字符、以 . meta 字符,或是用方括号表达式:

  • 一般字符指的是未列于 POSIX BRE 于 ERE 的 meta 字符,包括所有文字和数字字符、绝大多是的空白字符以及标点符号字符。因此,正则表达式 a ,匹配于字符 a 。我们可以说,一般字符所表示的就是它们自己,且这种用法是最直接且易于理解的。所以,shell 匹配 shell。
  • 若 meta 字符不能表示它们自己,那当我们需要让 meta 字符表示它们自己的时候,该怎么办?答案是转义它。在前面放一个反斜杠来做到这一点。因此,\* 匹配于字面上的 * ,\\ 匹配于字面上的反斜杠,还有 \[ 匹配于左方括号。
  • . 字符意即“任一字符”。因此,a.c 匹配于 abc、aac 以及aqc。单个点号用以表示自己的情况很少,它多办与其他 meta 字符搭配使用,这一结合允许匹配多个字符,这部分稍后会提及。
  • 最后一种匹配单个字符的方式是使用方括号表达式。最简单的方括号表达式是直接将字符列表放在方括号里,例如,[aeiouy] 表示的就是所有小写元音字母。在方括号表达式里,^放在首字母表示是取反的意思;也就是说不在方括号列表里的任意字符。所以 [^aeiouy] 指的就是小写元音字符以外的任何字符,例如:大写元音字母、所有辅音字母、数字、标点符号等。

将所有要匹配的字母全列出来是一件无聊又麻烦的事。例如[0123456789]指所有数字,或[0123456789abcdefABCDEF]表示所有十六进制数字。因此,方括号表达式可以包括字符的范围。像前面提到的两个例子,就可以分别以[0-9]与[0-9a-fA-F]表示。

在方括号表达式中,所有其他的 meta 字符都会失去其特殊含义。所以 [ *\. ] 匹配于字面上的星号、反斜杠以及句号。要让 ] 进入该集合,可以将它放在列表的最前面:[]*\.],将 ] 增加至此列表中。要让减号字符进入该集合,也请将它放到列表最前端 [-*\.] 。若你需要都有方括号与减号两者进入列表,请将右方括号放到第一个字符、减号放到最后一个字符:[]*\.-]。

最后,POSIX明确陈述:NUL字符(数值的零)不需要是可匹配的。这个字符在 C 语言里是用来指出字符串结尾,而 POSIX 标准则希望让它直接了当的,通过C字符串的使用实现其功能。除此之外,另有其他个别的工具程序不允许使用 . meta 字符或方括号表达式来进行换行字符匹配。

原文地址:https://www.cnblogs.com/avention/p/10307116.html

时间: 2024-08-29 17:05:54

3.2.2.1 匹配单个字符的相关文章

正则表达式中匹配单个字符

匹配单个字符. 匹配任意一个字符(除了\n)[] 匹配[]中列举的字符\d 匹配数字 0-9\D 匹配非数字\s 匹配空白,即空格\S 匹配非空白\w 匹配单词字符\W 匹配非单词字符 原文地址:https://www.cnblogs.com/liuxjie/p/12003232.html

Python正则表达式(1) --匹配单个字符

re模块操作 在python 中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re,使用方法如下: # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group() re模块示例(匹配以abc开头的语句) import re result = re.match("abc","abc.cn&q

JPQL模糊匹配单个字符

JPQL模糊匹配,不是%,而是单个字符,该怎么办?比如我要查出数据库中满足后三位是数字的字符串 对于mysql来说,使用通配符 %和_可以轻松解决,但是对于JPQL来说模糊查询就伤脑筋了... 有一个方法,可以使用like查询出来以后,再在java代码里进行过滤.虽然很笨,但也有效

第二章:匹配单个字符

2.1 匹配纯文本 文本: hello, my name is Ben. Please visit my website at http://www.forta.com/. 正则表达式: Ben 结果: hello, my name is Ben. Please visit my website at http://www.forta.com/. 再看一个例子: 文本: hello, my name is Ben. Please visit my website at http://www.fo

匹配单个字符

在上一小节中,了解到通过re模块能够完成使用正则表达式来匹配字符串 本小节,将要讲解正则表达式的单字符匹配 字符 功能 . 匹配任意1个字符(除了\n) [ ] 匹配[ ]中列举的字符 \d 匹配数字,即0-9 \D 匹配非数字,即不是数字 \s 匹配空白,即 空格,tab键 \S 匹配非空白 \w 匹配单词字符,即a-z.A-Z.0-9._ \W 匹配非单词字符 示例1: . #coding=utf-8 import re ret = re.match(".","M&quo

【正则表达式】——02单个字符匹配

[前言]本节主要讲述匹配单个字符 1. 匹配纯文本 区分大小写 匹配纯文本和搜索功能一致 2. 匹配任意字符——“.” .匹配除了换行符以外的任意字符 注意: [元字符]特殊符号和字符,即所谓的元字符,给予了正则表达式强大的功能和灵活性, 正则表达式是由字符组成的字符串,这些字符可以是文本字符(真正的文本),也可以是元字符(含有特殊含义的字符) 原文地址:https://www.cnblogs.com/testxiaobai/p/10762173.html

20170502 匹配单个字符串

为了方便爬虫,最近学习了正则表达式,将学习的过程记录如下: 一.正则表达式的概念: 1.使用单个字符串来描述匹配一系列符合某个句子语法规则的字符串 2.是对字符串操作的一种逻辑公式 3.应用来处理文本和数据 4.表达过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功,否则匹配失败 二.匹配单个字符串 import re ma = re.match(r'a','a')#匹配a字符print(ma)print(ma.group()) mb = re.match(r'a','b

正则表达式:元字符(基本可用来匹配的字符)

# 1: 匹配单个字符与数字 . 匹配除换行符以外的任意字符 [0123456789] 是字符集合,表示匹配方括号中所包含的任意一个字符 如[Mia] 匹配'M','i','a'中任意一个字符 [a-z] 匹配任意小写字母 [A-Z] 匹配任意大写字母 [0-9] 匹配任意数字,类似[0123456789] [0-9a-zA-z] 匹配任意的数字和字母,(不分大小写)(不能加空格,否则也匹配空格) [[0-9a-zA-z_] 匹配任意的数字.字母和下划线 [^Mia] 匹配除了'M','i','

js正则表达式验证、匹配数字、匹配字符串、匹配中文、匹配任意字符备忘录

本文转自:91博客 :原文地址:http://www.9191boke.com/235792704.html 正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘录.包括一些常用的验证.匹配数字.匹配字符串.匹配中文.匹配任意字符串. 匹配正则 使用 .test() 方法 let testString = "My test string"; let testRegex = /string/; testRegex.test(testString); 匹配多个模