一个正则表达式的写法,该如何解决
程序员文章站
2022-06-10 11:18:24
...
一个正则表达式的写法
$str='[movie=http://a.com/a.X]'; //X格式为除了.mp3和.wmv以外的任何字符串
$ptn="/\[movie\=.*\.[^(mp3|wmv)]\]/i";
$str=preg_replace($ptn,'x',$str);
echo $str;
怎么不对啊
------解决方案--------------------
你没有理解正则里中括号[]的含义,[]里所有的东西匹配的时候只“消耗”单个字符。
除xxx之外的需求一般用“否定前瞻”(negative lookahead) 来实现。
------解决方案--------------------
$str='[movie=http://a.com/a.mp3]';
$ptn="/\[movie\=.*\.[^(mp3|wmv)]+\]/i";
if(preg_match($ptn,$str)) {
echo 'Y';
} else {
echo 'N';
}
------解决方案--------------------
$str='[movie=http://a.com/a.X]'; //X格式为除了.mp3和.wmv以外的任何字符串
$ptn="/\[movie\=.*\.[^(mp3|wmv)]\]/i";
$str=preg_replace($ptn,'x',$str);
echo $str;
怎么不对啊
------解决方案--------------------
你没有理解正则里中括号[]的含义,[]里所有的东西匹配的时候只“消耗”单个字符。
除xxx之外的需求一般用“否定前瞻”(negative lookahead) 来实现。
------解决方案--------------------
$str='[movie=http://a.com/a.mp3]';
$ptn="/\[movie\=.*\.[^(mp3|wmv)]+\]/i";
if(preg_match($ptn,$str)) {
echo 'Y';
} else {
echo 'N';
}
------解决方案--------------------
- PHP code
------解决方案--------------------
- PHP code
.*\.)(?:(?!mp3|wmv).+)\]/";if(preg_match($ptn,$str,$g)) { echo 'Y'; print_r($g);} else { echo 'N';}?>相关文章
相关视频
推荐阅读
-
如何解决提示程序缺少一个名为"互联网支持库2.0版的易语言支持库,起文件
-
系统检测到不兼容的键盘驱动程序该如何解决
-
渗透测试中遇到的越权漏洞该如何解决
-
JQuery slideshow的一个小问题(如何发现及解决过程)
-
做网络推广该如何分析并解决常遇到的问题
-
使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决
-
迅捷CAD编辑器如何隐藏图纸中标注的尺寸 只需一个按钮轻松解决
-
如何解决开机提示"0x7c97cd12" 指令引用的 "0x00000014"内存。该内存不能为"writ
-
想要运营好淘宝店铺,你需要知道该如何解决所遇到的各种疑难杂症
-
迅捷CAD编辑器如何创建不同的视口 一个设置轻松解决