Php 我需要一个正则表达式来解析FTP URL

Php 我需要一个正则表达式来解析FTP URL,php,regex,Php,Regex,有人能帮我构造一个preg_匹配模式来匹配这个数据吗 我有这样的数据 ftp://username:password@server <br> ftp://username:password@server <br> ftp://username:password@server <br> ftp://username:password@服务器 ftp://username:password@服务器 ftp://username:password@服务器 ec

有人能帮我构造一个preg_匹配模式来匹配这个数据吗

我有这样的数据

ftp://username:password@server <br>
ftp://username:password@server <br>
ftp://username:password@server <br> 
ftp://username:password@服务器
ftp://username:password@服务器
ftp://username:password@服务器
ect

我想要一个preg_match来匹配每一行作为变量,并在foreach循环中使用它


谢谢

你不需要预赛。你可以使用explode。确保在分解后使用array_pop消除最后一个空键

<?php
$linkArray = explode(" <br>",$links);
array_pop($linkArray);
?>

现在,数组的每个值将包含链接,但不包含“br”标记。我想应该可以

您的数据是否按以下方式显示

$str=    "ftp://username:password@server <br>
          ftp://username:password@server <br>
          ftp://username:password@server <br>";
$str=”ftp://username:password@服务器
ftp://username:password@服务器
ftp://username:password@服务器
”;

如果是,我的解决方案将起作用

在简单的情况下是。。。但您应该检查RFC,以查看这些URL中允许或不允许哪些字符

<?php

$lines=explode("\n","ftp://username:password@server <br>
ftp://username:password@server <br>
tp://username:password@server <br>
ftp://username:password@server <br>");

foreach ($lines as $line) {
if (preg_match('/^ftp:\/\/[\da-z]+:[^\@]+\@[^\s]+ <br>\s*$/',$line)) {echo "$line is ok\n";}
}

不,explode只返回整个字符串,我需要将字符串分成数组变量所有三行url都在一个字符串中?
list($var1,$var2,$var3)=explode(…)
?行上拆分有什么问题?你想要正则表达式做什么?如果您试图获取URL的组件,请查看
parse\u URL()