欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

新手又有正则有关问题需要请问

程序员文章站 2023-12-22 14:33:04
...
新手又有正则问题需要请教!
新手,在打书上的文章发布工具时,用正则匹配URL出了点问题。

$pattern = '/(http\:\/\/|https\:\/\/)?([a-zA-Z0-9-]+\.)+(com|cn|org|net)(\/[\w\%\&\=\'\"\?\/\.]*)?/';
$string = 'http://demo.demo.baidu.com';
preg_match_all($pattern,$string,$result);

遍历$result的结果是
[code=php]
Array
(
[0] => Array
(
[0] => http://demo.demo.baidu.com
)
[1] => Array
(
[0] => http://
)

[2] => Array
(
[0] => baidu.
)
[3] => Array
(
[0] => com
)
[4] => Array
(
[0] =>
)
)
[/php]
第二个子表达式其实是匹配了’www.‘以及’baidu.‘,有两次匹配,但是返回的结果里只有一处匹配T.T
整个表达式是能够匹配整个URL的,但是我要用到第二个子表达式的两次匹配结果,现在只有一个,望各位指教问题出现在哪儿!
感谢!
------解决方案--------------------
(http\:\/\/
------解决方案--------------------
https\:\/\/)?(([a-zA-Z0-9-]+\.)+)+(com
------解决方案--------------------
cn
------解决方案--------------------
org
------解决方案--------------------
net)(\/[\w\%\&\=\'\"\?\/\.]*)?

------解决方案--------------------
$pattern = '/(http\:\/\/
------解决方案--------------------
https\:\/\/)?((?:[a-zA-Z0-9-]+\.)+)(com
------解决方案--------------------
cn
------解决方案--------------------
org
------解决方案--------------------
net)(\/[\w%&=\'"?\/.]*)?/';
$string = 'http://demo.demo.baidu.com';
preg_match_all($pattern,$string,$result);
Array
(
[0] => Array
(
[0] => http://demo.demo.baidu.com
)

[1] => Array
(
[0] => http://
)

[2] => Array
(
[0] => demo.demo.baidu.
)

[3] => Array
(
[0] => com
)

[4] => Array
(
[0] =>
)

)

新手又有正则有关问题需要请问

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


上一篇:

下一篇: