2
http://someurlhere.com|http://sometexturl.com|sometexthere

我只想提取 | 之前的第一个 url , http://someurlhere.com

我写了正则表达式

\bhttp(.*)\|\b

但它捕获了所有发生的|

感谢您的帮助

4

3 回答 3

8

使不.*贪心:.*?

\bhttp(.*?)\|\b

如果您只想在第一个之后匹配|

\|http://(.*?)\|

有了这个,网址就在$1

于 2012-10-18T11:47:27.300 回答
1

这不是一个确切的答案,但我会向您指出可以帮助您解决此问题的信息!

正则表达式:匹配字符的第一次出现

于 2012-10-18T11:48:19.890 回答
1

不需要正则表达式。我看到你把它标记为 PHP。

$boom = explode('|', 'http://someurlhere.com|sometexturl.com|sometexthere');
$url = $boom[0];
echo $url;

输出:

http://someurlhere.com

http://codepad.org/xnW0FTfA

于 2012-10-18T11:50:09.940 回答