求一条php做的正则表达式

<input type="hidden" name="name0" value="fffffffffff"/><input type="hidden" name="name1" value="fffffffffff1"/><input type="hidden" name="name2" value="fffffffffff2"/>

用正则怎么匹配
name0=fffffffffff
name1=fffffffffff1
name2=fffffffffff2
那位高手能帮我一下,谢谢了

PHP中的正则式使用

PHP被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就会出现问题,比如说某人的生日是”2月30日”!那应该怎么样来检验暑假是否正确呢? 在PHP中加入了正则表达式的支持,让我们可以十分方便的进行数据匹配。
2 什么是正则表达式:
简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。
在某个Linux网站上面有这样的话:”如果你问一下Linux爱好者最喜欢什么,他可能会回答正则表达式;如果你问他最害怕什么,除了繁琐的安装配置外他肯定会说正则表达式。”
正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符串来替代符合条件的字符串等强大的功能,不学实在太可惜了……

3 正则表达式的基本语法:
一个正则表达式,分为三个部分:分隔符,表达式和修饰符。
分隔符可以是除了特殊字符以外的任何字符(比如”/ !”等等),常用的分隔符是”/”。表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如”[a-z0-9_-]+@[a-z0-9_-.]+”可以匹配一个简单的电子邮件字符串。修饰符是用来开启或者关闭某种功能/模式。下面就是一个完整的正则表达式的例子:
/hello.+?hello/is
上面的正则表达式”/”就是分隔符,两个”/”之间的就是表达式,第二个”/”后面的字符串”is”就是修饰符。
在表达式中如果含有分隔符,那么就需要使用转义符号”",比如”/hello.+?/hello/is”。转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要”"来转义,比如”d”代表全体数字。

4 正则表达式的特殊字符:
正则表达式中的特殊字符分为元字符、定位字符等等。
元字符是正则表达式中一类有特殊意义的字符,用来描述其前导字符(即元字符前面的字符)在被匹配的对象中出现的方式。元字符本身是一个个单一的字符,但是不同或者相同的元字符组合起来可以构成大的元字符。
元字符:
大括号:大括号用来精确指定匹配元字符出现的次数,例如”/pre{1,5}/”表示匹配的对象可以是”pre”、”pree”、”preeeee”这样在”pr”后面出现1个到5个”e”的字符串。或者”/pre{,5}/”代表pre出现0此到5次之间。
加号:”+”字符用来匹配元字符前的字符出现一次或者多次。例如”/ac+/”表示被匹配的对象可以是”act”、”account”、”acccc”等在”a”后面出现一个或者多个”c”的字符串。”+”相当于”{1,}”。
星号:”*”字符用来匹配元字符前的字符出现零次或者多次。例如”/ac*/”表示被匹配的对象可以是”app”、”acp”、”accp”等在”a”后面出现零个或者多个”c”的字符串。”*”相当于”{0,}”。
问号:”?”字符用来匹配元字符前的字符出现零次或者1次。例如”/ac?/”表示匹配的对象可以是”a”、”acp”、”acwp”这样在”a”后面出现零个或者1个”c”的字符串。”?”在正则表达式中还有一个非常重要的作用,即”贪婪模式”。
还有两个很重要的特殊字符就是”[ ]“。他们可以匹配”[]“之中出现过的字符,比如”/[az]/”可以匹配单个字符”a”或者”z”;如果把上面的表达式改成这样”/[a-z]/”,就可以匹配任何单个小写字母,比如”a”、”b”等等。
如果在”[]“中出现了”^”,代表本表达式不匹配”[]“内出现的字符,比如”/[^a-z]/”不匹配任何小写字母!并且正则表达式给出了几种”[]“的默认值:
[:alpha:]:匹配任何字母
[:alnum:]:匹配任何字母和数字
[:digit:]:匹配任何数字
[:space:]:匹配空格符
[:upper:]:匹配任何大写字母
[:lower:]:匹配任何小写字母
[:punct:]:匹配任何标点符号
[:xdigit:]:匹配任何16进制数字
另外下面这些特殊字符在转义符号”"转义后代表的含义如下:
s:匹配单个的空格符
S:用于匹配除单个空格符之外的所有字符。
d:用于匹配从0到9的数字,相当于”/[0-9]/”。
w:用于匹配字母,数字或下划线字符,相当于”/[a-zA-Z0-9_]/”。
W:用于匹配所有与w不匹配的字符,相当于”/[^a-zA-Z0-9_]/”。
D:用于匹配任何非10进制的数字字符。
.:用于匹配除换行符之外的所有字符,如果经过修饰符”s”的修饰,”.”可以代表任意字符。
利用上面的特殊字符可以很方便的表达一些比较繁琐的模式匹配。例如”/d0000/”利用上面的正则表达式可以匹配万以上,十万一下的整数字符串。
定位字符:
定位字符是正则表达式中又一类非常重要的字符,它的主要作用是用于对字符在匹配对象中的位置进行描述。
^:表示匹配的模式出现在匹配对象的开头(和在”[]“里面不同)
$:表示匹配的模式出现在匹配对象的末尾
空格:表示匹配的模式出现在开始和结尾的两个边界之一
“/^he/”:可以匹配以”he”字符开头的字符串,比如hello、height等等;
“/he$/”:可以匹配以”he”字符结尾的字符串即she等;
“/ he/”:空格开头,和^的作用一样,匹配以he开头的字符串;
“/he /”:空格结束,和$的作用一样,匹配以he结尾的字符串;
“/^he$/”:表示只和字符串”he”匹配。
括号:
正则表达式除了可以用户匹配,还可以用括号”()”来记录需要的信息,储存起来,给后面的表达式读取。比如:
/^([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+)(.[a-zA-Z0-9_-])$/
就是记录邮件地址的用户名,和邮件地址的服务器地址(形式为username@server.com之类的),在后面如果想要读取记录下来的字符串,只是需要用”转义符+记录的次序”来读取。比如”1〃就相当于第一个”[a-zA-Z0-9_-]+”,”2〃相当于第二个([a-zA-Z0-9_-]+),”3〃就是第三个(.[a-zA-Z0-9_-])。但是在PHP中,”"是一个特殊的字符,需要转义,所以”"到了PHP的表达式中就应该写成”1〃。
其他特殊符号:
“|”:或符号”|”和PHP里面的或一样,不过是一个”|”,而不是PHP的两个”||”!意思就是可以是某个字符或者另一个字符串,比如”/abcd|dcba/”可能匹配”abcd”或者”dcba”。

5 贪婪模式:
前面在元字符中提到过”?”还有一个重要的作用,即”贪婪模式”,什么是

参考资料:http://www.stylejar.com/archives/2009/125

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-14
preg_match_all("/\<input[^\>]*name=\"([^\>]+)\"[^\>]*value=\"([^\>]+)\"/", $string, $out, PREG_SET_ORDER);

for ($i=0;$i<count($out);$i++) {
echo $out[$i][1] ."=". $out[$i][2] . "<br>\n";
}

请参考
第2个回答  2009-12-14
从你问的问题来看,你是只想匹配name0、name1、name2等这几个值吧,如果是这样,那很简单啊,reg=^fffffffffff|^fffffffffff[1-9]
这样就可以啦,如果你是想匹配HTML标签里面的,那就用上面那们老兄的解答吧;
第3个回答  2009-12-14
<?php
$str='<input type="hidden" name="name0" value="fffffffffff"/><input type="hidden" name="name1" value="fffffffffff1"/><input type="hidden" name="name2" value="fffffffffff2"/>';

preg_match_all('/\<input[^\>]*name="([^"]+)"[^\>]*value="([^"]+)"/im', $str, $matches, PREG_SET_ORDER);

print_r($matches);

$arr = array();
foreach($matches as $match) {
$arr[$match[1]] = $match[2];
}

print_r($arr);
第4个回答  2009-12-25
正则:
(\<input\s.*?name\=["'](?<name>\w+)["']\svalue\=["'](?<value>.*?)["']\/\>)

结果:
${name}=${value}

name0=fffffffffff
name1=fffffffffff1
name2=fffffffffff2
希望对您有点作用。

求php正则表达式 要求匹配 纯英文字符串#纯数字(位数不限), 谢谢_百度...
正则为:\/^[a-z0-9\\#]*$\/ 检测代码如下:str = '###1414adsad'; if (preg_match("\/^[a-z0-9\\#]*$\/", $str)) { echo "验证成功"; } else { echo "验证失败"; } 3. 可以改变$str的值来检测,该正则是否正确 ...

求一PHP的正则表达式
第一个可以用 "[\\d]{1,3}.[\\d]{1,3}.[\\d]{1,3}.[\\d]{1,3}"关于第2,3个用 preg_match_all()函数提取4个中文,正则表达式是[\Α-\¥]+(这个 是提取中文的)然后在数组中返回第二个和第三个就可以了。正则表达式我只是入门级,希望能帮到你 ...

求一个PHP正则表达式匹配(字母、数字、汉字、下划线)
<?php $pat = '#^([a-zA-Z]+|[0-9]+|[\\x{4e00}-\\x{9fa5}]+)$#u';$s = "你好";var_dump( preg_match( $pat, $s ));

关于PHP里的正则表达式
preg_match('\/[^a-zA-Z0-9_^\\x00-\\x80]+\/',$company_name)(UTF-8格式下)

php的正则表达式"\/[\\d\\.]{7,15}\/"什么意思?
这个是匹配域名的正则表达式。if (getenv('HTTP_X_FORWARDED_FOR')){ realip = getenv('HTTP_X_FORWARDED_FOR');} elseif (getenv('HTTP_CLIENT_IP')){ realip = getenv('HTTP_CLIENT_IP');} else { realip = getenv('REMOTE_ADDR');} preg_match("\/[\\d\\.]{7,15}\/", $realip,...

PHP常用正则表达式
PHP常用正则表达式 header("Content-Type:text\/html;charset=utf-8"),这一句一般都是用于设置页面的字符集,防止出现乱码,虽然跟本节没多大关系,但也可以当作基础知识。\/\/匹配英文域名网址:http,https。域名中没有下划线,后缀为字母 1 2 3 preg = '\/^(https?:\/\/)?([a-zd.-]+).([a-z]...

php 正则表达式\\b问题
php 正则表达式 \/\\Bis\\b\/i 完整的PHP程序如下 <?php $str='this itis'; $regex="\/\\Bis\\b\/i"; preg_match_all($regex,$str,$result); print_r($result[0]); ?>运行结果Array( [0] => is [1] => is)

求PHP 的正则表达式 大全
<\/\\1>|<.*? \/> 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为 匹配首尾空白字符的正则表达式:^\\s*|\\s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 匹配Email地址的正则表达式:\\w+([-+.]\\w+)*@\\w...

php正则表达式获取标题代码
例子代码:str='标题'; preg_match('#([^<]*)#', $str, $reg);echo $reg[1];

php求正则表达式!!?(10.42.112.0至到10.42.155.255) 如10.42.114.6 返回...
用正则表达式把四个数值取出来,然后再转换为长整型进行判断,例如:ip='10.42.114.6';if (preg_match('^|(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)|$', $ip, $r)) $n=(($r[1]*256+$r[2])*256+$r[3])*256+$r[4];else $n=0;if ($n>=((10*256+42)*256+112)*256+0 ...

相似回答
大家正在搜