zoukankan      html  css  js  c++  java
  • [ 转载 ] 什么是正则表达式的贪婪与非贪婪匹配

    http://www.cnblogs.com/xudong-bupt/p/3586889.html
    1.什么是正则表达式的贪婪与非贪婪匹配

    如:String str="abcaxc";

    Patter p="ab*c";

    贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。

    非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。

    2.编程中如何区分两种模式

    默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

    量词:{m,n}:m到n个

    *:任意多个

    +:一个到多个

    ?:0或一个
    以上来自博主的博客,然后这道题目
    .表示除 之外的任意字符
    *表示匹配0-无穷 
    +表示匹配1-无穷
    (?=Expression) 顺序环视,(?=\()就是匹配正括号
    懒惰模式正则: 
    src=".*? (?=\()) "
    结果:北京市
    因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。
    生活不容易 所以必须得牛逼
  • 相关阅读:
    jsp文件导包 糖不苦
    java 数字和日期处理 糖不苦
    java时间的一些处理 糖不苦
    Vimdiff 使用
    C++资源不完全索引
    sprintf 函数详细解释
    C++ 时间
    C++的可移植性和跨平台开发
    Solaris下开发64位程序的注意事项
    C/C++ 数学库函数
  • 原文地址:https://www.cnblogs.com/ILoke-Yang/p/8060003.html
Copyright © 2011-2022 走看看