zoukankan      html  css  js  c++  java
  • 正则表达式基础教程(php)

    正则表达式

    正则表达式是一种字符串搜索工具和匹配工具

    Php常用的正则表达式函数如下:

    Preg_match($pattern,$subject)  表单验证等

    Preg_match_all($pattern,$subject,array&$matches)

    Preg_replace($pattern,$replacement,$subject)  非法词语过滤等

    Preg_filter($pattern,$replacement,$subject)

    Preg_grep($pattern,array,$input)

    Preg_split($pattern,$subject)

    Preg_quote($str)

    $pattern=正则表达式

    $subject=匹配的目标数据

    正则表达式基本语法

    界定符

    $pattern=’/[0-9]/’;

    #[0-9]#

    {[0-9]}

    原子

    • 可见原子

    Unicode 编码表中用键盘输出后肉眼可见的字符

    有哪些?

    标点:“_?.等等

    --英文字母数字 a-z, A-Z,0-9

    --汉字、日文、阿拉伯文等其他语言文字

    --数理化公式符号

    --其他可见字符

    • 不可见原子

    换行符

    回车

    制表符

    空格

    其他不可见符号

    量词

    {n} 表示其前面的原子恰好出现n次

    {n,} 表示其前面的原子最少出现n次

    {n,m}表示其前面的原子最少出现n次,最少出现m次

    *匹配 0次、1次或者多次其之前的原子,即{0,}

    + 匹配1次或者多次其之前的原子,即{1,}
    ? 匹配0次或者1次其之前的原子,即{0,1}

    边界控制

    ^ 匹配字符串开始的位置

    $ 匹配字符串结尾的位置

    ()匹配其中的整体为一个原子

    模式单元

    修正模式: 默认为贪婪模式 ,懒惰模式 实在后面加个大写的U 例如 /123456/U

    常见的修正模式

    U:懒惰匹配

    u:贪婪匹配

    i:忽略英文字母大小写

    x:忽略空白(回车,空格等)

    s       让元字符. 匹配包括换行符在内的所有字符

    Regexpl正则调试工具

    匹配中文时,为避免编码格式不同产生的错位,建议先将中文转换成Unicode编码

    元字符

    原子的筛选方式

    | 匹配两个或者多个

    []匹配方括号中的任意一个原子

    [^]匹配除方括号中的原子之外的任意字符

    元字符

    原子的集合

    匹配除换行符之外的任意字符

    . 除了换行符之外的任意字符

    d 匹配任意一个十进制数字 ,即[0-9]

    D 匹配任意一个非十进制数字,即[^0-9]

    s 匹配一个不可见原子,即[f v]

    S 匹配一个可见原子,即[^f v]

    w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z]

    w:匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。

    W:匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。

    如果用re.sub(r'[_|W]', '', text)  会除掉所有的非单词或者下划线"_",

    如果用re.sub(r'[_|w]', 'x', text),会用‘x'替换所有的'_'和单词字符

    常见的正则表达式

    .+ 非空

    1(3|4|5|7|8)d{9}  匹配中国大陆的手机号

    ^w+(.w+)*@w+(.w+)+$ 验证邮箱的

    ^(https?://)?(w+.)+[a-zA-Z]+$ 网址的

    山寨Smarty模板引擎的开发

    模板引擎的工作原理

    获取模板源文件

    编译模板(正则替换)

    输出给用户

    仿smarty简易模板引擎,在一个标准的PHP系统中,模板引擎肯定是要有的,便于前端工程师和后端工程师把工作分开来,而且前端工程师不需要懂后端的代码。

    在线调试工具

    http://cs.smu.ca/~porter/csc/355/regexpal/

    ?: 是 不想被捕获的时候使用 可以提高程序执行速度

  • 相关阅读:
    fiddler 抓包工具(新猿旺学习总结)
    Monkey之常用ADB命令(新猿旺学习总结)
    APP压力测试 monkey(新猿旺学习总结)
    linux 系统shell运行程序不退出
    c++字节对齐编译器指令#pragma
    vmware 14 新安装centos7 没法联网
    windows dll的def文件
    c编译器字节对齐指令
    centos 7 进入图形界面
    cent os 7 与cent os 6区别
  • 原文地址:https://www.cnblogs.com/xiaogou/p/9123483.html
Copyright © 2011-2022 走看看