使用正则表达式提取文本而不提取网址?

时间:2018-05-13 12:27:27

标签: regex

我从论坛帖子中提取了大量文字,现在正在过滤它。我使用正则表达式使用以下模式:

pattern = [A-Za-zćžđščČĆŽĐŠ0-9'\-]+|[\.]+|[\?]+|[\!]+|[\,\@\%\#\*\(\)\:]

我得到这样的东西:

'internetske', 'komunikacije', ',', 'te', 'njega', 'neovlašteno', 'isključili', '.', 'Uz', 'to', 'izvješće', 'Živkovića', '-', 'a', 'i'

但是,我在本文中也有网址,这些网址也会分成单词。 我想要没有网址的文字。我尝试了以下内容,但它只在http的开头不匹配h:

pattern = (?!https?://)[A-Za-zćžđščČĆŽĐŠ0-9'\-]+|[\.]+|[\?]+|[\!]+|[\,\@\%\#\*\(\)\:]

我觉得这需要一个简单的调整,但我会慢慢发疯,试图弄清楚如何在匹配其余部分的情况下制作一个不匹配网址的异常。您可以假设网址周围有空格。

1 个答案:

答案 0 :(得分:1)

您是否希望将网址提取为单个字词? 我认为你应该在正则表达式中为此创建一个单独的案例。

这样的事情:

(https?:\/\/\w+.\w+(?:\/[\w|\\-|#]+)|[A-Za-zćžđščČĆŽĐŠ0-9'\-]+|[\.]+|[\?]+|[\!]+|[\,\@\%\#\*\(\)\:])

https://regex101.com/r/3jWDeT/1/