• 正则表达式规则


    写前,说一下目的,工作上时不时要用到正则,但又不愿意花时间去理解,都是直接度娘。现在为了一劳永逸,记录下正则的规则。

    1、literal 指匹配字符串字面值。

    例:'literal' 指匹配字符'literal';'burning'指匹配字符'burning'

    2、reg1| reg2 指符合匹配reg1或者匹配reg2的

    例:'a|A'指 匹配字母a 不区分大小写 ;'b|B'指  匹配字母b 不区分大小写

    3、. 指匹配任何字符( 除外)

    例:'a.a'指匹配字符左右都为'a'的字符串 如:'aaa';'aba';'a2a'等

    4、^指匹配字符串起始部分 

    例:'^say'指匹配以'say'开头的字符串

    5、$ 匹配字符串终止部分

    例:'you$'指匹配以'you'结尾的字符串

    6、* 匹配 0 次或者多次前面出现的正则表达式 

    例:'6*'指匹配'6';'66666'的字符串;或没有'6'的情况

    7、+ 匹配 1 次或者多次前面出现的正则表达式

    例:'6+'指匹配至少包含一个'6'的字符串

    8、?匹配 0 次或者 1 次前面出现的正则表达式 

    例:'6?'指匹配最多包含一个'6'的字符串

    9、{N}匹配 N 次前面出现的正则表达式 

    例:'[0-9]{11}'指匹配11位数字的字符串;'[A-Za-z0-9]{11}'指匹配11位数字或字母的字符串

    10、{M,N}匹配 M~N 次前面出现的正则表达式 

    例:'[01]{6,11}'指匹配6到11位只有'0'或'1'的字符串;'[aeiou]{6-11}'指匹配6到11位只有'a','e','i','o','u'的字符串

    11、[…] 匹配来自字符集的任意单一字符

    例:'[0-9]{6,11}'指匹配6到11位数字的字符串;'[A-Za-z0-9]{6-11}'指匹配6到11位数字或字母的字符串

    12、[..x−y..] 匹配 x~y范围中的任意单一字符

    例:'[0-9]'指匹配0到9的字符串;'[A-Za-z]'指匹配英文字母(包含大小写)的字符串

    13、[^…] 不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现)

    例:'[^0-9]'指匹配非数字的字符串;'[^0-9A-Za-z]'指匹配非数字且非英文字母的字符串;

    14、(*|+|?|{})? 用于匹配前面重复出现符号的非贪婪版本(*、+、?、{})

    解释:
    贪婪模式:就是在整个表达式匹配成功的前提下,尽可能多的匹配,也就是所谓的“贪婪”,通俗点讲,就是包含所有的匹配。
    非贪婪模式:就是在整个表达式匹配成功的前提下,尽可能少的匹配,也就是所谓的“非贪婪”,通俗点讲,就是只包含第一个匹配项。

    字符串:'0000321-4321-54321-654321-7654321-22222-0123-1234-12345-123456-1234567'

    表达式:.*(d{3}-d{4}-d{5}-d{6})

    表达的意思是:匹配以任意数量任意字符开头且结构为'XXX-XXXX-XXXXX-XXXXXX'的贪婪模式的字符串 (X代表数字)
    结果:
    '0000321-4321-54321-654321-7654321-22222-0123-1234-12345-123456-1234567'

    表达式:.*?(d{3}-d{4}-d{5}-d{6})            在'*'后面,加了"?"


    表达的意思是:匹配以任意数量任意字符开头且结构为'XXX......XXX-XXXX-XXXXX-XXXXXX'的非贪婪模式的字符串 (X代表数字)
    结果:
    '0000321-4321-54321-654321

    结果取第一个匹配项,因此结果是'0000321-4321-54321-654321

    字符串:aa<div>test1</div>bb<div>test2</div>cc

    表达式:<div>.*</div>
    结果:<div>test1</div>bb<div>test2</div>

    表达式:<div>.*?</div>
    结果:<div>test1</div>(这里指的是一次匹配结果,所以没包括<div>test2</div>)

    15、(…) 匹配封闭的正则表达式,然后另存为子组 

    例:([0-9]{3})?,f(oo|u)bar  匹配一个包含三个数字的字符串;匹配字符串'foobar'或'fubar'

  • 相关阅读:
    css中的选择器
    HTML5总结
    table中的一些另类标签
    form表单
    Laravel常用命令行中文版
    浅谈Session与Cookie的区别与联系
    Wechat微信公众平台开发
    js中的正则表达式入门
    畅谈Redis和Memcached的区别
    php的ob缓存详解
  • 原文地址:https://www.cnblogs.com/liaoxt/p/10138700.html
Copyright © 2020-2023  润新知