• 正则


    正则里面的 分组、字符匹配、前瞻、后顾 有时间了解了解
     
    w{3} 是什么意思
    w 大小写字母、数字、下划线。
    {3} 代表只有3个匹配字符。
    w{3} 代表只有3个匹配的字母、数字、下划线。
     
    javaScript中用来匹配正则的函数是什么?
    match() return 一个数组。
     
    修饰符 g 是什么意思?
    g代表匹配全局,只有在javaScript中有 php、java没有。
     
    w+ 和 w有啥区别?
    前者匹配多次或者多个 大小写字母、数字、下划线;后者只匹配一个或者一次。
     
    W 大写W代表非字母、数字、下划线。
     
    经常会发现javaScript中有个test()函数,有什么作用?
    用于检测一个字符串是否匹配某个模式,如果匹配返回true,不匹配返回false。
     
    在每个正则表达式的最后加上一个修饰符 i 代表忽略大小写
    例如:/aaa/i 取出所有的aaa 忽略大小写。 javaScript、php 都可以使用
    php中 也可以写成 /(?i)aaa/
     
    [A-Z]代表匹配从A到Z的一个大写字母。
    [a-z]代表匹配从a到z的一个小写字母。
    + 是匹配多次的意思。
     
    javaScript中的 中文:
    第一个 u4e00 最后一个 u9fa5 [\u4e00-\u9fa5]
    php中的 中文:
    第一个 x{4e00} 最后一个 x{9fa5}
    所以在php中匹配中文要这么写 [x{4e00}-x{9fa5}] 并必须加上"u"修饰符 字符串如果是utf-8 那么必须要加上u修饰符 /[x{4e00}-x{9fa5}]/u
     
    ^ 代表匹配一行的开头。
    $ 代表匹配一行的结尾。
    . 代表除了 之外的 任意字符 后面加个 + 你懂得
    () 正则表达式中的小括号的作用是对字符进行分组,并保存匹配的文本,与位于小括号之间的模式匹配的内容都会被捕获。我们可以认为小括号里面的内容可以被取出来。
    () 小括号还有另外的一个意思 就是在连续字符可以作为多选进行匹配
    [] 是范围
    在()里面加 ?: 代表这个小括号里面的内容不进行提取
    在()后面加? 代表可有可无
     
    ?: 代表 0个或者1个
    +: 代表 1个或者多个
    *: 代表 0个或多个
     
    修饰符 is
    1、i 代表不区分大小写
    2、s 加上这个修饰符就代表所有了,默认是不包括换行符的,加上就代表包括换行符了
    3、修饰符大写U 代表使用非贪婪模式
     
    试着抓取页面 img的url
    $pattern="/<img.*?src=['|"]?(?<img>[^'">]*)['|"]?.*?[/]?>/i";
     
    试着过滤html中的注入
    $pattern="/</?(script|i?frame|style).*?>/is";
     
     
    年月日的正则
    31天月份
    0[13578]|1[02]
    30天的月份
    0[469]|11
    对于31天来说
    前10天|10-29天|30-31天
    0[1-9]|[12][0-9]|3[01]
    对于30天来说
    0[0-9]|[12][0-9]|30
    对于28天来说
    0[1-9]|1[0-9]|2[0-8]
    31天的月份+日期
    0[13578]|1[02]-0[1-9]|[12][0-9]|3[01]
    30天的月份+日期
    0[469]|11-0[0-9]|[12][0-9]|30
    28天的月份+日期
    02-0[1-9]|1[0-9]|2[0-8]
    把前面的合并起来 就解决了 月份跟日期 不考虑闰年 的正则
    ((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[0-9]|[12][0-9]|30))|(02-(0[1-9]|1[0-9]|2[0-8]))
    处理闰年
    闰年的定义:1、普通年能被4整除且不能被100整除的为闰年。如2004就是闰年,1900就不是闰年
    2、世纪年能被400整除的是闰年。如2000就是闰年,1900就不是闰年
    普通年 前面2位不用处理 处理后面2位
    ([0-9]{2})(0[48]|[2468][048]|[13579][26])
    世纪年 后面2位为00 得处理前面2位
    (0[48]|[2468][048]|[13579][26])00
    合并起来 就是闰年的 2月29
    ((([0-9]{2})(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[13579][26])00))-02-29
    0001年-9999年的正则
    [0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}
    全部合并起来 YYYY-MM-DD的匹配正则
    (([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})|
    (((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[0-9]|[12][0-9]|30))|(02-(0[1-9]|1[0-9]|2[0-8]))))|
    (((([0-9]{2})(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[13579][26])00))-02-29)
  • 相关阅读:
    itext操作PDF文件添加水印
    【PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异常】
    【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】
    Itext简绍及操作PDF文件
    【将txt文本转图片】
    通用缓存组件
    一个简易的、轻量级的方法并行执行线程辅助类
    学习笔记 android fragment
    某队列积压问题分析、解决
    平衡
  • 原文地址:https://www.cnblogs.com/ldcheng/p/7381584.html
Copyright © 2020-2023  润新知