正则表达式 U贪婪模式

<?php
/*
模式修正符号:
i u
位置:"//模式修正符位置"
可以一次使用一个,也可以一次使用多个
对整个正则表达式调优用的,也可以说是对正则表达式功能的扩展
"/abc/":只能匹配小写字母abc
"/abc/i":可以不区分大小写匹配
m:默认情况下将字符串视为一行 ^ $视为多行后
 任何一行都可以以正则表达式开始或者结束
s:如果没有使用这个模式修正符号时,.默认不能表示换行符号
  将字符串视为单行 .就可以表示换行符号了
x:模式中的空白忽略不计
U:一种使用修正符号
另一种是使用.*?
*/
//常用的正则表达式:
//
/*$Pdata="/^a.bchello\s?world/is";
//$Pdata="/(?:a)bc/i";
$string="A\nBChello world";*/
/*$Pdata="/\<b\>(.*)\<\/b>/U";*/
$Pdata="/\<b\>(.*?)\<\/b>/";
$string="<b>hello</b><b>nihao</b>fadfasdf<b>word</b>fasdfasdf<b>php</b>";
if(preg_match_all($Pdata, $string,$arr)){
echo "匹配成功"."<br>";
echo "<pre>";
var_dump($arr);
echo "</pre>";
}else{
echo "匹配不成功"."<br>";
echo "<pre>";
var_dump($arr);
echo "</pre>";
}

?>

时间: 2024-10-17 05:05:47

正则表达式 U贪婪模式的相关文章

正则表达式之贪婪模式

首先需要明确一点,正则默认就是贪婪模式,何为贪婪模式? 就是在满足条件的前提下,尽可能多的进行匹配. 下面先来个例子 s ='my tel number is 132-4567-1258' r = re.match(r'(.+)(\d+-\d+-\d+)',s) print(r.groups()) # ('my tel number is 13', '2-4567-1258') ''' 结查分析: .+ : 表示任意字符匹配一次或者多次 \d+-\d+-\d+ : 1个数字或者多个数字,然后横线

正则表达式中的贪婪模式与非贪婪模式详解

1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NFA引擎所支持. 属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”.“{m,}”.“?”.“*”和“+”. 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括: “{m,n}?”.“{m,}?”.“??”.“*?”和“+?”.

正则表达式默认是贪婪模式

regex的---------------------正则表达式默认是贪婪模式,优先级|不高 没有^高因为.+要尽可能多的匹配.所以会认为1111.1 1. 111.111111.都是.+匹配的结果,但是由于正则表达式中最后还有一个 : . ,所以如果要是将.+匹配了所有的字符,则最后的 . (句号)无法找到匹配,正则表达式会尽可能的找到匹配,所以会将 .(句号)尝试给正则表达式中的最后一个字符(句号)来匹配,然后把前面的所有字符都用.+:来匹配.---------------------?功能

正则表达式贪婪与非贪婪模式

之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意. 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配.如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c). 非贪婪匹配:就是匹配到结果就好,就少的匹配字符.如上面使用模式p匹配字符串str,结果

正则表达式之 贪婪与非贪婪模式

1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NFA引擎所支持. 属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”.“{m,}”.“?”.“*”和“+”. 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括: “{m,n}?”.“{m,}?”.“??”.“*?”和“+?”.

python 正则表达式 贪婪模式的简介和匹配时的几种模式

看到一篇文章,关于python正则的,http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 贪婪模式与非贪婪模式: 正则表达式通常用于在文本中查找匹配的字符串.Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符:非贪婪的则相反,总是尝试匹配尽可能少的字符.例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb".而如果使用

【转】正则表达式贪婪与非贪婪模式

转自:http://www.cnblogs.com/xudong-bupt/p/3586889.html 正则表达式贪婪与非贪婪模式 之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意. 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配.如上面使用模式p匹配字符串st

python正则表达式贪婪与非贪婪模式

之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意. 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab.*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配.如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab.*c). 非贪婪匹配:就是匹配到结果就好,最少的匹配字符.如上面使用模式p匹配字符串str,

正则表达式贪婪和非贪婪模式

*.+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配. 文本: <H1>Chapter 1 - 介绍正则表达式</H1> 贪婪:下面的表达式匹配从开始小于符号 (<) 到关闭 H1 标记的大于符号 (>) 之间的所有内容. /<.*>/ 非贪婪:如果您只需要匹配开始和结束 H1 标签,下面的非贪婪表达式只匹配 <H1>. /<.*?>/ 如果只想匹配开始的 H1 标签,表达式则是: