检查URL是否在带有正则表达式的句子中

问题描述 投票:0回答:1

我需要检查URL是否在句子中。

Some text. This is good. 
https://stackoverflow.com
More text

More text https://stackoverflow.com. More text. This is bad

经过一些研究,我可以找到这些URL,但是我仍然坚持用句子来查找它们。

https://regex101.com/r/AmuFIX/5

((http|ftp|https):\/\/)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)[\r\n]
regex go
1个回答
0
投票

基于注释,听起来您正在寻找URL与line不一定是sentence上的其他文本混合的情况。为此,我将使用类似以下内容:

.+\b((http|ftp|https):\/\/)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)\b.+

这将断言必须有一些字符,然后是单词边界,然后是URL,再是单词边界,然后是其他一些字符,从而改变了您的查询。这与其他内容的行首或末尾的URL不匹配;为此,您可能需要进行两个两个单独的匹配-一个用于前面带有URL的URL,另一个用于后面带有URL的URL。

© www.soinside.com 2019 - 2024. All rights reserved.