php正则或者,PHP 正则表达式

php正则或者,PHP 正则表达式PHP 正则表达式一 正则表达式简介正则表达式是用于描述字符排列和匹配模式的一种语法规则 它主要用于字符串的模式分割 匹配 查找和替换操作 目前为止 我们前面所用过的精确 文本 匹配也是一种正则表达式 在 PHP 中 正则表达式一般由正则字符和一些特殊字符 类似于通配符 联合构成的一个文本模式的程序性描述 在 PHP 中 正则表达式有三个作用 1 匹配 常用于从字符串中析取信息 2 用新文本代替匹配文本

PHP 正则表达式

一、正则表达式简介

正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找和替换操作。目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。

在PHP中,正则表达式一般由正则字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述。

在PHP中,正则表达式有三个作用:1.匹配,常用于从字符串中析取信息 2.用新文本代替匹配文本 3.将一个字符串拆分为一组更小的信息块

一个正则表达式中至少包含一个原子

二、两套正则表达式函数库

PCRE库(推荐):使用preg_为前缀命名的函数;

POSIX库:使用ereg_为前缀命名的函数

三、PCRE库函数

函数名 描述

———————-|————————–

preg_match() | 进行正则表达式匹配

preg_match_all() | 进行全局正则表达式匹配

preg_replace() | 执行正则表达式的搜索和替换

preg_split() | 用正则表达式分割字符串

preg_grep() | 返回与模式匹配的数组单元

preg_replace_callback | 用回调函数执行正则表达式的搜索和替换

四、使用场景

表单验证

url_rewrite (url地址重写)

爬虫

五、正则表达式的组成部分

1.定界符 (必须)

通常使用特殊字符组成,常用“/”。

2.原子(必须)

是正则表达式的最基本组成单元,而且在每个模式中最少要包含一个原子。原子是由所有那些未显示指定为元字符的打印和非打印字符组成,具体分为5类。

普通字符作为原子:如a~z,A~Z,0~9。

一些特殊字符和转义后元字符作为原子: \’ \* \+ \? \.等。

一些非打印字符作为原子:如:f n r t v cx。

使用“通用字符类型”作为原子:如:d D w W s S。

自定义原子表([ ])作为原子:如:’/[apj]sp/’。

3.元字符

4.模式修正符

示例:

# 匹配一个字符a

$pattern = ‘/a/’;

# 匹配字符a,如果有返回1,没有返回0,只能匹配一次。

echo preg_match($pattern, ‘0’);

# preg_match也可用于判断

if(preg_match($pattern, “”, $matches)) {

echo “匹配到了


“;

# 并把匹配出来的字符以数组的形式赋值给$matches;

# 打印结果:`array(1) {[0] => string(1) “a”}`;

var_dump($matches);

}else {

echo “没有匹配”;

}

元字符匹配:

# 如果只想匹配 `.`,特殊含义的字符要转义。

$pattern = “/\./”

# 匹配非打印字符

$pattern = “/\n/”

# 匹配0-9数字

$pattern = “/\d/”;

# 匹配除了0-9的数组

$pattern = “/\D/”;

# 匹配数字+大小写字母+下划线

$pattern = “/\w/”;

# 匹配除了数字、大小写字母、下划线

$pattern = “/\W/”;

# 匹配空白符(换行、缩进、空格)

$pattern = “/\s/”;

# 匹配除了空白符的字符

$pattern = “/\S/”;

# `*` 代表匹配前面的原子出现0、1、或多次

$pattern = “so*u”;

# `+` 代表匹配前面的原子出现1次、或多次

$pattern = “so+u”;

# `?` 匹配前面的一个原子出现0次或者1次

$pattern = “hao?sou”;

# 匹配除了换行符的任意字符

$pattern = “/./”;

# `|`代表或者

$pattern = “/a|b|c/”;

# 匹配前面的一个原子恰巧出现n次;

$pattern = “/hao{2}sou/”;

# 匹配出现>=2次

$pattern = “/hao{2, }sou/”;

# 匹配出现2-5次

$pattern = “/hao{2, 5}sou/”;

# `^` 必须以该原子开头

$pattern = “/^aaa/”;

# `$` 必须以该原子结尾

$pattern = “/aaa$/”;

# 严格模式

# 必须严格只能匹配aaa。

$pattern = “/^aaa$/”;

# a | b | c

$pattern = “/[abc]/”;

# 除了a,b,c

$pattern = “/[^abc]/”;

# `()`可以看做一个整体,还可以做反向引用

# 比如要匹配协议头为http、https、ftp

$pattern = “/(http|https|ftp):\/\//”;

# 匹配除了空白符的任意字符

$pattern = “/.*/”;

# `.*`贪婪模式

$str = “abcabc“;

$pattern = “/.*/”;

# `.*?`取消贪婪模式

$pattern = “/.*?/”;

或:

$pattern = “/.*/U”;

模式修正符:

`i`代表ignore,忽略大小写

`m`匹配多行

`.`修正.的换行符

`x`忽略正则表达式里面的空白符

`D`取消$对\n的忽略

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204541.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午8:05
下一篇 2026年3月19日 下午8:05


相关推荐

  • 在pycharm中更新pip失败

    在pycharm中更新pip失败尝试了网上的各种方法 各种翻车删除虚拟环境中的这两个文件夹 包括 pip 有只删除 pip 21 1 2 dist info 这个个文件夹然后重新安装 pip 之后在更新 我试了没有用下载 get pip py 文件 转到 https bootstrap pypa io get pip py 后直接右键另存为到这个文件夹下 上面删除步骤打开的文件夹 在 pycharm 的终端 进入到虚拟环境文件夹下 输入 python mensurepipde pip 这时候在设置里能看到安装了更新的

    2025年10月10日
    7
  • navicat激活码【2021.7最新】

    (navicat激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月22日
    83
  • 学生个人网页制作html_学生管理html页面

    学生个人网页制作html_学生管理html页面<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>Title</title><styletype=”text/css”>*{margin:0;…

    2025年10月26日
    3
  • 部落冲突兑换码2025(最新可用) 部落冲突(16个永久)兑换码大全

    部落冲突兑换码2025(最新可用) 部落冲突(16个永久)兑换码大全

    2026年3月15日
    2
  • XGBoost使用教程(纯xgboost方法)一

    XGBoost使用教程(纯xgboost方法)一“无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”一、导入必要的工具包#导入必要的工具包importxgboostasxgb#计算分类正确率fromsklearn.metricsimportaccuracy_score二、数据读取XGBo…

    2022年4月29日
    198
  • pycharm远程调试「建议收藏」

    pycharm远程调试「建议收藏」我的博客链接Remote篇——PyCharm远程运行、调试环境配置一般在本地无法调试远程端代码,机械性的scp传输文件十分影响工作效率,PyCharm的Pro支持远程Run,Debug,等可视化的功能。操作系统:本地MacOS,远程Linux(本地3个操作系统都是支持的,远程Linux比较稳定)IDE:最新版本PyCharmPro(不支持社区版)python虚拟环境:Anaconda,pip远程创建新项目首先在远程服务器上新建一个项目文件$mkdirYOUR-PROJEC

    2022年8月25日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号