美文网首页
关于正则表达式

关于正则表达式

作者: ShoneSingLone | 来源:发表于2017-02-26 11:49 被阅读5次

    正则表达式30分钟入门教程
    正则表达式的简单应用


    如何匹配{abc:(a*c)=》c }?


    WHAT

    Regular Expression,是用来查找特定字符串的规则的表达式。(这个表达式描述的是这个查找规则)

    WHY

    与通配符相比,能灵活准确地查找出特定的字符串。

    HOW

    "我要找一个 这样并这样 的东西,吧啦吧啦..."

    从三个方面描述匹配规则(这样并这样):

    • 位置
    • 字符
    • 数量
    如何描述
    原图

    “在什么位置查找多少数量的什么字符。”
    使用正则表达式的语法来表达如是的语句,成矣。

    1.正则表达式基本语法

    位置

    代码/语法 说明
    \b word start or end
    ^ string start
    $ string end

    零宽断言:

    零宽度正预测 零宽度负回顾
    先行断言 (?=exp)someword (?!=exp)someword
    (?=exp)someword:查找exp,且后面是someword (?!=exp)someword:查找exp,且后面是someword
    后发断言 (?<=exp)someword (?!<=exp)someword
    (?<=exp)someword:查找exp,且前面是someword (?!<=exp)someword:查找exp,且前面是someword

    怎么理解(?<=\s)\d+(?=\s)最后的(?=\s)?

    字符

    代码/语法 说明
    . any character
    \w word num underline
    \s blank
    \d num
    [] collection

    注意:大写字母与此相反,如\D表示不是数字。

    数量

    代码/语法 说明
    * 0 or more
    + 1 or more
    ? 0 or at most 1
    {n} n
    {n,m} between n and m include
    {n,} n or more

    其他

    mate character元字符

    元字符代表一类:\d=[0-9];非元字符代表本身:()=>()。

    分支条件 |

    分组节()

    (){1,3}:()里的部分重复1或3次。

    向后引用

    使用()可以指定一个子表达式,按从左至右的顺序会自动编号,0号是整个Sting。

    • 组号分配过程。
    • ?这里的分组是否与JavaScript中的match方法有联系

    我们已经讨论了前两种语法。第三个(?:exp)不会改变正则表达式的处理方式,只是这样的组匹配的内容不会像前两种那样被捕获到某个组里面,也不会拥有组号。“我为什么会想要这样做?”——好问题,你觉得为什么呢?

    误:两个文本的替换可以匹配具体的内容FP_&1_&2 ,其中&1和&2即可指定具体的替换位置

    反义

    大写和^。

    贪婪与懒惰

    尽可能匹配最长的String与竟可能匹配少String:
    ?的使用法。

    在大量使用嵌套的字符中需要思量。(常见的便是HTML文件中的<>嵌套,常用的规则利用)

    (?<=<(\w)>).*(?=<\/\1)
    

    转义

    反斜杠\就是转义

    相关文章

      网友评论

          本文标题:关于正则表达式

          本文链接:https://www.haomeiwen.com/subject/jlyowttx.html