提取大字符串的部分

时间:2015-10-30 10:54:43

标签: python regex

我正在使用python进行编程,而我正试图抓取一个网站的pagesource。举个例子,我正在尝试提取upc号码。这只是页面的一部分。在upc周围有一堆字母,数字和符号。

myString = someLargeString + '<meta property=og:upc content=02276254215 />' + anotherLargeString

我想我可以使用很多分割来提取它,但我想知道是否有更好的方法。我学习了一些关于使用findall和正则表达式的知识,但我不确定是否可以在这里应用。拆分是最好的方法吗?

非常感谢任何帮助或建议。非常感谢。

3 个答案:

答案 0 :(得分:1)

正则表达式可能更好,因为它更快,更易于维护和更易于阅读。 Here's关于正则表达式的一个很好的教程,如果你要长时间解析这些东西,你应该阅读它。

例如,如果您只想找到一个匹配项:

import re

m = re.search('upc content=([0-9]*)', string)
if m:
   upc = m.group(1)
   print upc

如果您要重复使用正则表达式,那么事先对其进行预编译可能是一个好主意here

答案 1 :(得分:1)

import  re

myString = '<meta property=og:upc content=02276254215 />'

print(re.findall(r'upc\s+content=(\d+)',myString))

['02276254215']

答案 2 :(得分:1)

另一种提取大字符串部分的方法,如果你知道字符串是什么,则使用String的find方法:

myString = '<meta property=og:upc content=02276254215 />'

FirstString = "content="
SecondString = " />"

print(myString[myString.find(FirstString)+len(FirstString)+1:
myString.find(SecondString)])

['02276254215']

您可以在FirstString和SecondString之间提取字符串。