导航:首页 > 编程语言 > php100正则

php100正则

发布时间:2022-08-31 13:46:53

php正则匹配如何截取前200个字符,跪求大神解答

如下是一个测试脚本,
<?php
$str
=
"abcd123456";
$pattern
=
'/^(.{0,6}).*?$/i'
preg_match($pattern,
$str,
$matches);
print_r($matches);
效果如下图:
我看了你的$pattern,即/^(.{0,200}).*?$/i首先你使用了^.......$这个结构表示精确匹配某个字符串,逐个分析你的表达式,首先(.{0,200})表示匹配除" "外的0到200个字符,而^表示以(.{0,200})开头,而后面的.*表示0个或多个单个字符,而.*?结合起来则表示使用懒惰模式,匹配任意数量的重复个字符,/i表示去区分大小写,使用你的$pattern应该可以达到效果,同样使用preg_match语法的话,则preg_match($pattern,
$str,
$matches);然后$matches[1]就会输出第一个0到200字符组成的串(有200则输出200个,没有则输出所有)

⑵ PHP 正则表达式 100分就是你的了!!

我不会PHP 只会正则。按照你给的html,(?<=name=").*?(?=") 可以匹配第一个,(?<=id=").*?(?=") 可以匹配第二个。注意,我这么写是因为name和id这个属性在你给的html语句中都是唯一的,如果不唯一那么就要重新写条件。

⑶ php如何进行正则替换

按照你的要求把h后的数字和w后的任意数字替换成固定数的php程序如下

<?php

$fix='555';//固定数

$str='asdasda/w/100/h/200/q/sdasdsad';

$regex1="~h/[0-9]+~";

$result=preg_replace($regex1,"h/".$fix,$str);

$regex2="~w/[0-9]+~";

$result=preg_replace($regex2,"w/".$fix,$result);

print_r($result);

?>
运行结果

asdasda/w/555/h/555/q/sdasdsad

⑷ PHP 正则表达式截取HTML

正则查询的时候 使用 preg_match_all 函数吧

他能获取 所有匹配的 字符串然后装进 数组里。

还有你说的 多个行里的 匹配 找不出来 , 需要加 修饰符 s

可以这样 preg_match_all("/<form>(.+)<\/form>/isU" , $string, $tea)

这里/ 后面加了 3个修饰符
i 是 不区分大小写的匹配
s 是 带有换行的 匹配
U 是非贪婪模式。匹配最少部分。

⑸ php正则表达式 取页面指定内容

你好,现在ip138的ip地址没有直接显示在http://www.ip138.com/中 而是用的iframe,打开源文件可以看到:
<iframe src="http://www.ip138.com/ip2city.asp" frameborder="0" scrolling="no" width="100%" height="100%"></iframe>
所以你的 $str中没有[]括起来的字符串,匹配失败。

应该这样:
$countfile="http://www.ip138.com/ip2city.asp/";
$mode="\[(.*)\]";//正则表达式 //简单匹配[]中的所有内容,即ip地址
$str=file_get_contents($countfile);
preg_match($mode,$str,$arr);
print_r($arr);

⑹ PHP正则表达式高手来啊

你好,我虽然没学过PHP,但是为了帮助你(还有你的100分)也稍微看了一下,这里说一下我的见解..不对的还请见谅
首先我不建议楼主先获取字符串数组再用循环一一替换,看了一下preg_replace这个方法,我自己仿写了一个
<?php
$string = "[<a href=?c=12&a=&l=2&p=2>2</a>] [<a href=?c=12&a=&l=2&p=3>3</a>] [<a href=?c=12&a=&l=2&p=4>4</a>] [<a href=?c=12&a=&l=2&p=5>5</a>] [<a href=?c=12&a=&l=2&p=6>6</a>] [<a href=?c=12&a=&l=2&p=7>7</a>] [<a href=?c=12&a=&l=2&p=8>8</a>] [<a href=?c=12&a=&l=2&p=9>9</a>] [<a href=?c=12&a=&l=2&p=10>10</a>] [<a href=?c=12&a=&l=2&p=2>下一页</a>]";
$pattern = "/(\?c=)(\d+)(&a=&l=2&p=)(\d+)/g";
$replacement = "/list/\\2-\\4.html";
print preg_replace($pattern, $replacement, $string);
?>
上面的代码是替换,先取得字符串,再替换,再拆分,这样可以少一步循环
下面是拆分的正则表达式,根据[]作判断,看了楼主写的好象有点不太明白取什么,我这里是取的每一个[],正则表达式为
/\[[^\]]*\]+?/g
说明一下每个符号的作用
\[ :转义为符号"[" , \]意思相同
取[]中间的那些非"]"的内容, 最后的\]+?是非贪婪匹配,意思是取到一个符合的就停止,这样不会把整个字符串都取了,如果楼主不想要两端的[], 可以改成这样
/(?<=\[)[^\]]*(?=\])+?/g
不消费两端的[]号

以上代码我没在PHP里运行,只在别的语言上试了下可以,见笑了~~

PS:第一段代码中$pattern正则中的&号必须要写成"& amp ;"(无空格) 网络里不让打出来,切记!

⑺ 求个php的验证文本框内容的正则表达式

^[\p{Han}\p{N}\p{P}]{2,100}$

最好放入单引号中,并且使用unicode
'/^[\p{Han}\p{N}\p{P}]{2,100}$/u'
应该可以包括汉字、标点和数字

⑻ 急急急,PHP关于正则表达式的问题

根据你写的这一句,表达式可以用:'/<a[^>]*href=([\'\"])([^\'\">]*)\\1[^>]*>/i'
如果链接的文字也要获取的话,用'/<a[^>]*href=([\'\"])([^\'\">]*)\\1[^>]*>(.*?)<\/a>/i'

阅读全文

与php100正则相关的资料

热点内容
单片机进制字母对应表 浏览:526
向某人下命令 浏览:625
编程中删除数组中的数 浏览:84
aes对称加密反编译 浏览:548
java编译成exe 浏览:188
gps处理算法 浏览:594
什么app可以和对象存钱 浏览:144
java字符串表达式计算 浏览:328
javacmd环境变量 浏览:49
电视上面找不到全民歌app怎么办 浏览:154
单片机中psw0 浏览:992
优酷视频加密么 浏览:761
本地连接dos命令 浏览:204
云服务器怎么上传金币房卡游戏 浏览:69
Python快递管理可视化 浏览:417
java正则验证数字 浏览:828
猴子网游安卓扫码怎么登录 浏览:355
7天工作总结简短程序员 浏览:60
手机号交易网站源码 浏览:687
计算机算法怎么学 浏览:401