编程语言
首页 > 编程语言> > 模拟匹配Python(url)中大量文本中的字符串

模拟匹配Python(url)中大量文本中的字符串

作者:互联网

我有一个公司名称列表,我有一个url提到公司名称的列表.

最终目标是查看网址,并找出网址中有多少公司在我的列表中.

示例URL:http://www.dmx.com/about/our-clients

每个URL的结构都不同,因此我没有很好的方法来进行正则表达式搜索并为每个公司名称创建单独的字符串.

我想构建一个for循环来从列表中搜索URL的整个内容中的每个公司.但看起来Levenshtein对于两个较小的字符串更好,而不是短字符串和大量文本.

这个初学者应该在哪里看?

解决方法:

对你来说听起来并不像你需要任何“模糊”匹配.而且我假设当你说“url”时你的意思是“网址指向网址的网页”.只需使用Python的内置子串搜索功能:

>>> import urllib2
>>> webpage = urllib2.urlopen('http://www.dmx.com/about/our-clients')
>>> webpage_text = webpage.read()
>>> webpage.close()
>>> for name in ['Caribou Coffee', 'Express', 'Sears']:
...     if name in webpage_text:
...         print name, "found!"
... 
Caribou Coffee found!
Express found!
>>> 

如果您担心字符串大小写不匹配,只需将其全部转换为大写.

>>> webpage_text = webpage_text.upper()
>>> for name in ['CARIBOU COFFEE', 'EXPRESS', 'SEARS']:
...     if name in webpage_text:
...         print name, 'found!'
... 
CARIBOU COFFEE found!
EXPRESS found!

标签:python,algorithm,fuzzy-comparison
来源: https://codeday.me/bug/20190610/1210765.html