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

can someone help me construct an preg_match pattern to match this data?

I have data like this

ftp://username:password@server <br>
ftp://username:password@server <br>
ftp://username:password@server <br> 

ect

i would like an preg_match to match each line as an variable, and use that in an foreach loop

thanks

you dont need preg_match. You can use explode. Make sure to use array_pop after explode to eliminate the last empty key.

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

Now each value of the array will contain the link but not "br" tag. I think that should do.

Is your data in the below way ?

$str=    "ftp://username:password@server <br>
          ftp://username:password@server <br>
          ftp://username:password@server <br>";

If yes, my solution will work.

in simple case it is... but you should check rfcs to see what characters allowed or not allowed in such URLS.

<?php

$lines=explode("
","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
";}
}