php匹配正则
㈠ php 正则表达式 匹配1到32 如何匹配 这样可不可以[1-32]
正则是按位解析匹配的,所以[1-32]是不行的。
解析:
1、1-32,包含1位数(1-9)和2位数(10-32)
2、10-32必须切割,10-19和20-29形式一样,得到[12][0-9],30-32有3[012]
3、因此得到[1-9]|[12][0-9]|3[012]
4、考虑全匹配,因此得到/^(?:[1-9]|[12][0-9]|3[012])$/,
?:表示不捕获匹配,意思就是不保存括号数据
最终:
$pattern='/^(?:[1-9]|[12][0-9]|3[012])$/';//这个就是1-32的正则啦
㈡ php中如何用正则表达式匹配中文字符呢
php中匹配一个或多个中文字符(包含简体和繁体中文字符)的正则表达式如下:/[[b]\x{4e00}-\x{9fa5}]+/注意:php中正则表达式的16进制是以
\x
开头的。
㈢ PHP正则匹配问题preg_match("/([a-zA-Z]+)/","tech/web",$dirinfo);
使用括号会对匹配结果进行分组。在匹配结果中,键为0的表示整个正则匹配的内容,之后的是对应的括号中匹配的东西。
另外,你这里使用的是preg_match,所以只会匹配一个结果,如果想匹配所有的话,就使用preg_match_all
为了应正上面的描述,你可以运行以下代码试试:
$dirinfo = array();
preg_match_all("/([a-zA-Z]+)\d+/","tech01/web",$dirinfo);
print_r($dirinfo);
㈣ php 正则表达式 url匹配
1,preg_grep(pattern,array);它的返回值是一个新数组,新数组的元素是成功匹配的元素。
㈤ php正则匹配数字
式子:/^[a-zA-Z0-9]+$/u
释义:
"/":表示正则表达式的定义,固定写法。
"^":表示开头。
"[]":表示字符组。匹配所包含的任意一个字符。如,“[ab]”匹配“plain”中的“a”。
"a-z":表示匹配小写字母a-z的字母范围。
"A-Z":表示匹配大写字母A-Z的字母范围。
"0-9":表示匹配0-9的数字范围。
"+":表示匹配次数大于等于1。
"$":匹配输入行尾。如果设置了RegExp对象Multiline属性,$也匹配“ ”或“ ”之前的位置。
"u":最后的u是模式修饰符,严格的说可能叫预定义常量。表示使用unicode进行匹配。
(5)php匹配正则扩展阅读:
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到着名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
㈥ php 正则表达式 匹配网站内容
<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 <li></li>标签中的内容,可以用preg_match_all
//提取所有代码
$pattern = '/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is';
preg_match($pattern, $string, $match);
//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码
echo $match[0];
//然后再提取<li></li>之间的内容
$pattern = '/<li.*?>(.+?)</li>/is';
preg_match_all($pattern, $match[0], $results);
$new_arr=array_unique($results[0]);
foreach($new_arr as $kkk){
echo $kkk;
}