限定符 6种不同的元字符的用法 点字符 (限定符的作用)
本文目录导航:
限定符、点字符,6种不同的元字符的用法
POSIX规范制定了两种规范的正则表白式语法,一种是基本正则表白式,一种裁减正则表白式。
这两中正则表白式的元字符组成略有不同。
本节来学习基础正则表白式元字符。
基础正则表白式元字符 (1)限定符“*” 符号“*”用于婚配前导字符0次或屡次,详细示例如下: 以上示例中“*”符号之前是个别字符l,“*”符号就示意婚配l字符0次或屡次,字符串helo、hello、hellllllo都可以与hel*o婚配。
(2)点字符“.” 符号“.”用来婚配恣意除换行符“\n”外恣意的单个字符。
当正则表白式中产生“.”符号时,象征着该位置应有一个字符,详细示例如下: “.”只能婚配一个字符,因此上述字符串示意前两个字符是恣意字符,第3~5个字符是U73,最后一个字符也是恣意字符。
字符串MHU73、4JU73H等都可与..U73.婚配。
(3)行首定位符“^” 符号“^”用来婚配行首字符,示意行首字符是“^”前面那个字符。
例如罗列出/etc目录下以字符串“sys”扫尾的文件,可以经常使用如下命令: 留意: 虽然以上示例婚配的是以字符串“sys”扫尾的内容,但读者应了解为婚配以字符“s”扫尾,第二、第三个字符依次为“y”和“s”的行,这种了解形式更合乎正则表白式的思想,。
这种思想在学习正则表白式时十分关键,读者应熟练把握。
(4)行尾定位符“$” 行尾定位符“$”用来婚配文本行末尾的字符,与“^”符号的作用正雷同。
例如查找/etc目录下以conf开头的文件,可以经常使用如下命令。
雷同,读者无了解行尾定位符的时刻也应该从字符的角度去了解,即“conf$”婚配的是以“conf”以字符“f”开头,同时倒数第2~4个字符依次为“n”、“o”、“c”的文本行。
(5)字符组“[]” “[]”符号的配置比拟不凡,它是用来指定一个字符汇合的,其基本语法如下: 其中a、b和c示意恣意单个字符,只需某个字符串在方括号所在的位置产生了方括号中的恣意一个字符,就能满足婚配规定。
另外,关于延续的数字或字母可以经常使用符号“-”来示意一个范畴,例如[a-z],示意婚配到a到z中的恣意一个字母。
上方经过检查/etc目录下以rc扫尾,并且rc前面紧跟一个数字的文件有哪些来展示“[]”符号的经常使用,检查的命令详细如下所示: 由输入结果可知,合乎规定的文件一共有7个。
留意:元字符“*”或“.”位于“[]”符号之中,便仅示意一个个别的字符,不再具备不凡意义。
(6)扫除型字符组“[^]” “[^]”示意不婚配其中列出的恣意字符,其语法格局如下所示。
它的用法与“[]”符号雷同,此处不再赘述。
限定符详解
在解决大型文档时,章节编号或者会超越两位数,这时就须要经常使用限定符来顺应这种状况。
正则表白式为咱们提供了这样的配置。
例如,上方的形式婚配任何位数的章节题目,如 Chapter 10 或 Chapter 123:`/Chapter [1-9][0-9]*/`请留意,限定符紧跟在范畴表白式前面,确保只婚配0到9的数字。
这里未经常使用+,由于章节编号不必定要在第二个位置有一个数字,也不经常使用?,由于它限度了编号为两位。
至少须要婚配 Chapter 和空格后的数字。
假设章节编号明白在99以内,可以经常使用以下表白式婚配一到两位数字:`/Chapter [0-9]{1,2}/`但是,这个形式的疑问是,大于99的编号仅婚配扫尾两位,且会包括Chapter 0。
为了更准确地婚配两位数,可以这样写:`/Chapter [1-9][0-9]?/`或`/Chapter [1-9][0-9]{0,1}/`在某些状况下,比如在HTML文档中搜查H1标签内的章节题目,贪心的限定符或者不实用。
例如,上方的正则表白式婚配H1标签内的一切内容:`//`假设只想婚配开局的H1标签,可以经常使用非贪心形式:`//`经过在限定符后减少?,如`*?`、`+?`或`??`,可以将原来的贪心表白式转换为寻觅最小婚配。
这样,正则表白式会愈加灵敏,顺应不同的查找需求。
史上最便捷易记的正则表白式学法,没有之一
正则表白式是文本解决的弱小工具,其外围在于经常使用一系列符号和规定来婚配、提取、交流或操作文本数据。
以下是一些基本的正则表白式婚配符与限定符,以及逻辑符的说明:一. 婚配符:- . 示意婚配恣意一个字符,如 b. 可婚配 ba、bb、bc 等,了解为省略号,省略一个恣意字符。
- ^ 示意婚配字符串的开局位置,如 ^b 只婚配以 b 扫尾的字符串,如 bbba 可婚配到最扫尾的 b。
- $ 示意婚配字符串的完结位置,与 ^ 相似,如 ca$ 只婚配以 ca 开头的字符串。
- \d 婚配一个数字,相当于 [0-9],称为 digit,示意数字。
- \D 婚配非数字,相当于 [^0-9]。
- \s 婚配恣意空白字符,如空格。
- \S 婚配非空白字符。
- \w 婚配数字、字母或下划线,相当于 [a-zA-Z0-9_],称为 word。
- \W 婚配非数字、字母或下划线。
二. 限定符:- * 星号,婚配前一个字符产生0到n次,如 b* 可婚配 b 产生0次到n次,bobbby 则婚配出 b(1次)和 bbb(3次,取最大串)。
- + 婚配前一个字符产生1到n次,要求至少产生1次以上。
- ? 婚配前一个字符产生0到1次。
- {m,n} 婚配前一个字符产生m到n次,蕴含m与n。
三. 逻辑符:- | 或符,如 o|cb 婚配 o 或 cb;(o|c)b 婚配 ob 或 cb。
与程序中的 || 对应。
- \\ 转义字符,如 .\\ 代表婚配字符 .,\\\ 代表婚配字符 \\。
- [\] 字符集,代表婚配这个区间内的恣意一个字符,如 [.] 只代表 . 字符。
- 字符集内假设产生 -,代表一个字符范畴,如 [ 写在前面,防止被解释为字符范畴。
接上去是 Python 中正则表白式接口的简明引见:一. match 婚配,提取:经常使用 match 函数可以婚配字符串开局位置的正则表白式,如(pattern, string)。
二. search 搜查:search 函数用于在整个字符串中搜查婚配正则表白式的任何位置,前往婚配对象。
三. sub 交流:sub 函数可以将字符串中婚配到的局部交流为指定的文本,如(pattern, repl, string)。
经过这些基本的正则表白式符号和配置,可以成功文本的高效解决和操作。