我需要检查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]
基于注释,听起来您正在寻找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。