使用带有正则表达式的

时间:2018-02-02 17:03:04

标签: python regex url

好的我知道ppl会说这个问题已被问了一百万次......但我的问题是不同。我已多次搜索stackoverflow以确保这不是重复...

我想在 Python 中使用正则表达式,这也有助于从字符串中提取URL 包含碎片

到目前为止,我所做的是:

import re

test = 'This is a string with my URL as follows http://www.example.org/foo.html#bar and here i continue with my string'

test = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', test)

print (test)
  
    

上面代码的输出是['http://www.example.org/foo.html']

  

这不是我想要的......

  
    

我希望输出为['http://www.example.org/foo.html#bar']

  

1 个答案:

答案 0 :(得分:1)

你原来的正则表达式是这样的:

http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+

你不能只是添加#'#'像这样?:

http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),#]|(?:%[0-9a-fA-F][0-9a-fA-F]))+

我不清楚你的意思是什么'片段' ......你的意思是指字符串中的空格吗?