最佳正则表达式快速入门教程,看这篇就够了!

简介: 你都不知道正则表达式的作用是什么 怎么可能学好它呢? 来吧学习一下正则的基础知识吧!

🚀 个人主页 极客小俊
✍🏻 作者简介:web开发者、设计师、技术分享博主
🐋 希望大家多多支持一下, 我们一起进步!😄
🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注

1.png

正则表达式在字符串处理中的应用(一)
php正则表达式的介绍:

  1. 正则表达式: 就是描述字符串排列模式的一种自定义语法规则、也是用于描述字符串排列 或 匹配模式的一种语法规则、
  2. 正则表达式: 就是用于描述字符串排列 或 匹配模式的一种语法规则、
  3. 它主要用于字符串的: 分割字符串、查找字符串、替换字符串 的一系列操作
  4. 在php中 正则表达式一般是由一些特殊字符联合构成的一个文本模式描述
  5. 如果可以使用字符串处理函数完成的任务,就不要使用正则, 性能相关、但是有一些复杂的操作只能使用正则完成
  6. 正则表达式不单独属于某一个语言、它是可以在很多计算机语言中应用: php、java、c++..都通用
  7. 正则表达式也称为一种模式表达式。
  8. 正则表达式就是通过构建具有特定规则的模式,与输入的字符信息比较,再进行分割、匹配、查找、替换等工作

php正则表达式快速入门小案例如下:
"/\/"

以上正则表达式结构的特点分析:
一、 正则表达式也是一个字符串
二、具有特殊意义的字符组成的字符串
三、具有一定的编写规则,也可以看作是一种模式
四、也可以看作是一种编程语言(是用一些特殊字符,按规则编写出一个字符串,形成一种模式---正则表达式)

注意:在php中、如果正则表达式,不和函数一起使用,则它就是一个字符串,如果将正则
表达式放到到某个函数中使用, 才能发挥出正则表达式的作用。
用到分割函数中,就可以用这个正则去分割字符串
用到替换函数中,就可以用这个正则去替换字符串

先写一个php正则表达式小案例 : 模式验证

$pattren="/[^0-9]/";
$string="07896984666#659875454";
if(preg_match({
   
   mathJaxContainer[0]}string,$matches)){
   
   
    echo "正则表达式<b>{$pattren} 和字符串 {$string}</b> 匹配成功,匹配结果如下";
    show($matches);
}else{
    
    
    echo "<font color='read'>正则表达式<b>{$pattren} 和字符串 {$string}</b> 匹配失败</font>";
}

国外在线测试正则表达式地址:
https://regex101.com/
https://www.regexpal.com/

正则表达式在php手册中位置如下:

2.png

在PHP中给我们提供两套正则表达式函数库
POSIX 扩展正则表达式 ereg 开头的函数 [这种在PHP5.3以后被废除了]
PCRE 正则表达式(兼容 Perl) preg
开头的函数 [推荐]
两种函数库功能一样
注意:推荐使用正则表达式(兼容 Perl) 函数库.
手册位置如下图:

3.png

学习php正则表达式时,有两方面需要学习:
一、正则表达式的模式如何编写
二、学习正则表达式的强大处理函数

php正则表达式的模式如何编写
正则表达式的组成部分

  1. 定界符 // 为默认定界符号 (有一些语言是不需要这个定界符号)这也被叫做:界定符!
    除了字母、数字和正斜线\ 以外的任何字符都可以为定界符号,进过测试以下都是可以的
      | |      例如: |\<img\s*src=\".*?\"\/\>|
      //      例如: /\<img\s*src=\".*?\"\/\>/
      { }        例如: {\<img\s*src=\".*?\"\/\>}
      ! !        例如: !\<img\s*src=\".*?\"\/\>!
    

例如: #\#
但是没有特殊需要,我们都使用正斜线 // 作为正则表达式的定界符号!

  1. 原子: 是正则表达式的最基本组成单位,而且正则至少要包含一个原子、普通字符是编写正则表达式时最常见的原子了,包括所有的大写和小写字母字符、所有数字等。例如,a-z、A-Z、0-9 或者单独使用的字符,就是原子、所有打印(所有可以在屏幕上输出的字符串)和非打印字符(看不到的)都可以是原子、例如:空格、换行等等...
    ① 普通字符作为原子
    /5/ 用于匹配字符串中是否有5这个字符出现
    /php/ 用于匹配字符串中是否有PHP字符串出现
    / / 匹配空字符串
    ② 一些特殊字符和量词作为原子
    .、*、+、\?、 (、 \<、>、\/、用有意义的字符作为原子来使用,必须使用 ”\“转义字符转义 " \ " 转义字符可以将有意的字符转成没意义的字符
    所以任何一个符号都可以作为原子使用,但如果这个符号在正则表达式中有一些特殊意义,我们就必须使用转义字符“\”取消它的特殊意义,将其变成一个普通的原子。例如,所有标点符号以及一些其他符号,双引号””、单引号' 、“*”、“+”、“.”等,如果当原子就必须像\”、\’、+ 和 . 这样使用。
    例如 . 在正则中表示任意一个字符, [包括 . 在内] 那么只匹配一个字符 如果作为原子来光匹配 . 的话 就要转义 如下
    ‘/./’ 用于匹配字符串中是否有英文的“.”出现
    '/\/’用于匹配字符串中是否有HTML的
    标记字符串出现

转义字符: 如果你要使用正则表达式中的一些特殊符号来作为原子进行匹配 就必须转义例如: \ 、 . 、\/、 \、[ 、]、 等等...
(匹配与特殊字符同名的普通字符,需要在前面加 \,把特殊字符转义为普通字符。)
正则表达式中 使用特殊字符例如 正斜杠/ 、问号? 都是需要使用\来转义的
例如: $ptn='/http:\/\//'; 匹配: http://

小提示: 写正则表达式的时候最好是使用单引号进行书写!

  1. 在正则表达式中可以直接使用一些 [元字符] 代表范围的原子
    意思就是还有一些英文字母加上了 ‘\’ 反斜杠后、可以将没意义的英文字母转为有意义的[元字符]: 如下所示
          \d  : 表示任意一个十进制的数字      等同于:  [0-9]
          \D  : 表示任意一个除数字这外的字符  等同于:  [^0-9]
          \s  : 表示任意一个空白字符,空格、\n\r\t\f  等同于:  [\n\r\t\f]
          \S  : 表示任意一个非空白                   等同于:  [^\n\r\t\f ]
          \w  : 表示任意一个字 a-z、A-Z、0-9 _       等同于:  [a-zA-Z0-9_]
          \W  : 表示任意一个非字, 除了a-zA-Z0-9_以外的任意一个字符 
    
    所以 \W 等同于: [^a-zA-Z0-9_] 意思就是非字母 数字 下划线 以外的任意一个字符
      4. 自定义一个原子表[], 可以匹配方括号中的任何一个原子字符
          [a-z5-8]
          [^a-z] 表示取反, 就是除了原子表中的原子,都可以表示
    
    注意: ( ^必须在[]内的第一个字符处出现 ).
    小结:
    [ ] 它里面的任意一个字符
    [^abc] 它里面除了abc的任意一个字符
"👍点赞" "✍️评论" "收藏❤️"


大家的支持就是我坚持下去的动力!
如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,欢迎一起交流学习❤️❤️💛💛💚💚
相关文章
|
6月前
|
Ruby
|
应用服务中间件 nginx
Nginx系列教程(07) - Location正则表达式
Nginx系列教程(07) - Location正则表达式
155 0
|
4月前
|
关系型数据库 MySQL
MySQL 保姆级教程(七):用正则表达式进行搜索
MySQL 保姆级教程(七):用正则表达式进行搜索
|
4月前
|
数据采集 监控 Java
正则表达式教程:从入门到实战应用
正则表达式教程:从入门到实战应用
|
5月前
|
数据采集 监控 Java
正则表达式教程:从入门到实战应用
正则表达式教程:从入门到实战应用
|
6月前
|
Perl
Perl 教程 之 Perl 正则表达式 7
Perl教程讲解了其强大的正则表达式功能,用于字符串匹配、查找、替换和提取。示例展示如何使用`/s`删除变量`$string`中的重复字符,输出结果为原字符串。其他实例包括将非数字字符替换为空格,删除tab和空格,以及将数字间字符替换为单个空格。
48 3
|
6月前
|
Perl
Perl 教程 之 Perl 正则表达式 6
**Perl正则表达式强大多能,常用于字符串匹配、替换和提取。转化操作符如`tr`用于字符转换,如将所有小写字母转大写:`$string =~ tr/a-z/A-Z/`。**
50 2
|
6月前
|
Perl
Perl 教程 之 Perl 正则表达式 4
简洁概括:Perl正则表达式强大,s///操作符用于字符串替换,例子展示替换&quot;google&quot;为&quot;baidu&quot;。
40 1
|
6月前
|
Perl
Perl 教程 之 Perl 正则表达式 1
Perl教程介绍了其强大的正则表达式功能,用于字符串匹配、替换和转化。匹配用m//(可简写为//),替换用s///,转化用tr///,常与=~或!~配合判断匹配与否。示例展示了m//在匹配字符串中的应用。
35 0