欢迎访问宙启技术站
智能推送

正则表达式及相关函数介绍

发布时间:2023-06-24 16:50:29

正则表达式是一种用来描述字符串模式的表达式。它适用于各种编程语言和文本编辑器中,被广泛使用于字符串匹配、替换等操作。

在正则表达式中,使用各种符号和特定的语法,来描述需要匹配的字符集合、特定字符、重复次数、位置等。

下面介绍一些常用的正则表达式:

1. 字符匹配符

字符匹配符用来匹配单个字符,常见的有:  

   .:匹配任意字符  

   [ ] :表示匹配中括号内的任意一个字符  

   [^ ] :表示匹配除了中括号内的任意一个字符以外的字符  

   \d :匹配数字,即0~9  

   \D :匹配非数字  

   \w :匹配任意字母、数字、下划线  

   \W :匹配除了字母、数字、下划线以外的字符  

   \s :匹配空格、制表符、换行符  

   \S :匹配除了空格、制表符、换行符以外的任意字符  

例如:  

   字符串"hello,world 1234",用\d+可匹配出数字1234。  

2. 量词符

量词符用来表示重复的次数,常见的有: 

   * :表示重复0~n次  

   + :表示重复1~n次  

   ? :表示重复0~1次  

   {n} :表示重复n次  

   {n,} :表示重复n~∞次  

   {n,m} :表示重复n~m次  

例如:  

   字符串"aabbbcc",用a+b+c+可匹配出aabbbcc。  

3. 分组语法

分组语法可以将子表达式分组,常见的有:  

   ( ) :将子表达式分组,并捕获匹配到的字符串  

   (?: ) :将子表达式分组,但不会进行捕获  

   (?= ) :正向预查,表示匹配参数之后的字符串  

   (?<= ) :反向预查,表示匹配参数之前的字符串  

例如:  

   字符串"abacd",用(?:a|b)c 可匹配出ac,bc。  

4. 贪婪匹配和非贪婪匹配

正则表达式默认使用贪婪匹配,即匹配尽可能多的字符。而非贪婪匹配则相反,尽可能少地匹配。在量词符后加上?可切换贪婪和非贪婪匹配。

例如:  

   字符串"aaa"中,用a+可匹配出aaa;用a+?可匹配出a。  

5. 替换相关函数

在字符串中,我们还可以使用一些替换相关函数,常见的有:  

   preg_replace:返回匹配结果的字符串,并且将原字符串中所有与模式匹配的部分都替换掉  

   preg_match:如果匹配成功,返回1;如果失败,返回0;如果有具体的匹配结果,还将匹配的结果保存在子匹配里  

   preg_split:使用正则表达式分割字符串,结果为数组形式  

例如:  

   用preg_replace将"aabb"中的a替换成c,可得到ccbb。  

正则表达式及其相关函数,是每个开发者必备的工具之一。熟练掌握正则表达式能够让我们更加高效地处理字符串,节省时间和精力。