我必须用一些文本解析一个字符串,并且可能是一个用空格分隔的url,例如:
Hello, World! https://example.com/123456
Hello, World!
我试过
^(.*)\s(https://example\.com/.+)?$
但是这会忽略url并将其与文本的其余部分一起放入。
如何更改它,以便它始终可以找到网址?
答案 0 :(得分:1)
您的问题是.*
贪婪的第一个词,它将消耗所有输入,不留任何东西来匹配该URL。请改为使用不情愿的量词.*?
:
^(.*?)\s*(https://example\.com/.+)?$
我也将whitespace作为可选项,否则纯文本需要有尾随空格才能匹配,这是不正确的。
请参阅live demo。