美文网首页
正则表达式

正则表达式

作者: Reiko士兵 | 来源:发表于2019-08-14 08:49 被阅读0次
    1. re --- 正则表达式操作
    2. Python正则表达式前向/后向搜索的肯定/否定模式的区别和示例
    一、 基本参数使用
    .  匹配除换行符外的任意字符,flag指定re.DOTALL时换行符也匹配
    
    ^  匹配字符串开头,指定re.MULTILINE后可匹配换行后的首个符号
    
    $  匹配字符串结尾,指定re.MULTILINE后可匹配换行前的首个符号
    
    *  匹配前面正则表达式任意次,尽可能多地匹配(贪婪模式)
    
    +  匹配前面正则表达式1次以上,尽可能多地匹配(贪婪模式)
    
    ? 匹配前面正则表达式0或1次,尽可能多地匹配(贪婪模式)
    
    {m}  匹配前面正则表达式m次
    
    {m,n}  匹配前面正则表达式m到n次,尽可能多地匹配(贪婪模式)
    
    *?|+?|??|{m,n}?  对上述4种匹配尽可能少地匹配(非贪婪模式)
    
    []  匹配集合中任意一个字符,^可用于不匹配,-用于选取范围
    
    ()  匹配组合中任意一种模式,|用于分隔不同模式,模式可用\1之类的数字再次匹配
    
    (?P<name>…)  给组合命名
    
    (?P=name)  捕获命名的组合
    
    (?#…)  注释
    
    (?=…)  匹配组合,但是不捕获,无法在后面引用
    
    (?=exp)  匹配exp前面的,Isaac (?=Asimov)  只有后面是 'Asimov' 的时候才匹配 'Isaac ' 。
    
    (?!exp) 不匹配exp前面的 ,Isaac (?!Asimov) 只有后面 不 是 'Asimov' 的时候才匹配 'Isaac ' 。
    
    (?<=exp)  匹配exp后面的,(?<=Isaac) Asimov 只有前面是 'Isaac' 的时候才匹配 'Asimov'。
    
    (?<!exp)  不匹配exp后面的,(?<!Isaac) Asimov 只有前面不是 'Isaac' 的时候才匹配 'Asimov'。
    
    (?(id/name)yes-pattern|no-pattern)  如果给定的 id 或 name 存在,匹配 yes-pattern ,否则匹配 no-pattern。
    
    \n  匹配第n个组合中模式
    
    \b  匹配单词边界
    
    \d  匹配十进制数字
    
    \s  匹配空白字符
    
    \w  匹配字母数字下划线
    
    \B|\D|\S|\W 对以上四种匹配模式的取反
    
    二、 几个例子

    1. 匹配邮件地址

     (<)?(\w+@\w+(?:\.\w+)+)(?(1)>|$) 
    

    2. notepad++替换去重

    ^(.*?)$\s+?^(?=.*^\1$)
    

    3. 判断质数

    ^.?$|^(..+?)\1+$
    

    相关文章

      网友评论

          本文标题:正则表达式

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