Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中查找和替换文本模式_Python - Fatal编程技术网

在Python中查找和替换文本模式

在Python中查找和替换文本模式,python,Python,我有一堆HTML文本,我想找到带有标签img的所有文本模式,并更改它们的模板。如果初始文本为: <img alt=src="http://www.example.com/image.png" /> 我该如何处理这个问题?您的示例看起来很简单,您可以这样做: In [140]: my_str = '<img alt=src="http://www.example.com/image.png" />' In [141]: re.sub(r'\<img.*src\=\"

我有一堆HTML文本,我想找到带有标签
img
的所有文本模式,并更改它们的模板。如果初始文本为:

<img alt=src="http://www.example.com/image.png" />

我该如何处理这个问题?

您的示例看起来很简单,您可以这样做:

In [140]: my_str = '<img alt=src="http://www.example.com/image.png" />'
In [141]: re.sub(r'\<img.*src\=\"(http\://.*\.png)\".*\/\>', '[insert picture: []("\\1")]', my_str)
Out[141]: '[insert picture: []("http://www.example.com/image.png")]'
[140]中的
:my_str=''
在[141]:re.sub(r'\',“[插入图片:[](“\\1”)]”中,my\u str)
Out[141]:“[插入图片:[](”http://www.example.com/image.png")]'

不要试图重新发明轮子

使用模块

从urlextract导入urlextract
text=“”
提取器=URLExtract()
URL=提取器。查找URL(文本)
打印(URL)#打印:['www.example.com/image.png']

tag(正在标记)?你是说is(img)吗?跟我重复一遍:不要用语法解析HTMLregex@AdamSmith好吧,这就是为什么我要问一个问题!请告知。@Lexasaurus无意冒犯。试图用正则表达式解析HTML有点像是在开玩笑。尝试使用HTML解析器,如
lxml
或BeautifulSoup(
bs4
)长话短说:正则表达式仅适用于分类为“正则”的语言(请参见“关于正则语言”),也就是由Type-3语法生成的语言。HTML不是一种常规语言,因此使用正则表达式解析它有时会导致…*有趣的*结果。谢谢你的回答,但找到URL只是问题的第一部分。对于问题的第二部分,简单地迭代整个HTML代码并查找找到的每个URL的索引并不是最好的解决方案。我们可能会有一个URL在文本中重复多次。需要找到并替换所有img标签的解决方案。
In [140]: my_str = '<img alt=src="http://www.example.com/image.png" />'
In [141]: re.sub(r'\<img.*src\=\"(http\://.*\.png)\".*\/\>', '[insert picture: []("\\1")]', my_str)
Out[141]: '[insert picture: []("http://www.example.com/image.png")]'
from urlextract import URLExtract

text="<img alt=src="http://www.example.com/image.png" />"
extractor = URLExtract()
urls = extractor.find_urls(text)
print(urls) # prints: ['www.example.com/image.png']