正则表达式匹配规则

文章目录正则表达式涉及的基本类
正则表达式简介
正则表达式提供了功能强大、灵活而又高效的方法来处理文本 。正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字符模式;提取、编辑、替换或删除文本字符串;或将提取的字符串添加到集合以生成报告 。对于处理字符串(例如HTML处理、日志文件分析和HTTP标头分析)的许多应用程序而言,正则表达式是不可缺少的工具 。
正则表达式的组成
构造正则表达式的方法和创建数学表达式的方法一样 。也就是用多种元字符与运算符将小的表达式结合在一起,创建出更为复杂的表达式 。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合 。
正则表达式是由普通字符(例如字符a到z)以及特殊字符(称为“元字符”)组成的文本模式 。模式描述在搜索文本时要匹配的一个或多个字符串 。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配 。
例如,电话号码(如0992-)通常由3或4位以0开头的区号和一组7或8位的数字组合而成,中间通常以连字符“-”隔开 。对于本例,首先需要介绍一下元字符“\d”,它是用来匹配一个0~9的数字 。这样,就可以将全国的电话号码用正则表达式写成:^0\d{2,3}-\d{7,8}KaTeX parse error:: \d at46: …位置;(2)0匹配数字“0”,\?d?匹配一个数字,表示0~9;(3…”为匹配输入字符串的结束位置 。
正则表达式的优先级
正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似 。
相同优先级的从左到右进行运算,不同优先级的运算先高后低 。
表中列出了从最高到最低各种正则表达式运算符的优先级顺序 。
正则表达式匹配规则 字符匹配
句点“.”匹配字符串中的各种打印或非打印字符,但是只有换行符“\n”例外 。
例如:

正则表达式匹配规则

文章插图
/a.c/
该正则表达式匹配aac、abc、acc、adc等等,以及a1c、a2c、a-c和a#c 。
若要匹配包含文件名的字符串,而句点“.”是输入字符串的组成部分,需要在正则表达式中的句点前面加反斜杠“\”字符 。
例如,定义一个正则表达式用于匹配文件名.txt:
/.txt/
中括号表达式
若要创建匹配字符组的一个列表,需要在方括号“[”与“]”内放置一个或更多单个字符 。当字符括在中括号内时,该列表称为“中括号表达式” 。
使用中括号表达式需要注意以下几点:
(1) \字符继续作为转义符 。若要匹配\字符,需要使用\ 。
(2) 括在中括号表达式中的字符,只匹配处于正则表达式中该位置的单个字符 。
(3) 若要使用范围代替字符本身来表示匹配字符组,需要使用连字符“-”将范围中的开始字符和结束字符分开 。单个字符的字符值确定范围内的相对顺序 。
重复匹配
在更多的情况下,可能要重复匹配一个单词或一组数字 。一个单词有若干个字母组成,一组数字有若干个单数组成 。跟在字符或字符簇后面的花括号({})用来确定前面的内容的重复出现的次数,如下表所示 。
替换和分组
替换使用“|”字符来允许在两个或多个替换选项之间进行选择 。
例如:
/^| [1-9][0-9]{0,1}$/
该正则表达式要么匹配行首的单词,要么匹配行尾的单词及跟在其后的任何数字 。如果输入字符串是,那么上面的表达式只匹配单词 。如果输入字符串是 22,那么该表达式匹配 22 。