我是 python 正则表达式的新手,所以任何帮助都将不胜感激。提前致谢。
我有这个
string = "Restaurant_Review-g503927-d3864736-Reviews"
我想从中提取“g503927”和“d3864736”。
我知道你可以使用re.match(pattern, string, flags=0)
但不确定如何为其编写正则表达式。请帮忙
使用re.findall:
>>> s = "Restaurant_Review-g503927-d3864736-Reviews"
>>> re.findall('[a-z]\d+', s)
['g503927', 'd3864736']
[a-z]\d+
匹配小写字母后跟数字。
这应该工作
import re
pattern = re.compile("[a-z][0-9]+")
一个非正则表达式解决方案,但它取决于界定单位的内容,这里我假设它是-
:
s = "Restaurant_Review-g503927-d3864736-Reviews"
outputs = [i for i in s.split('-') if i[0].isalpha() and i[1:].isdigit()]
无需使用正则表达式...使用split()
方法:
s = "Restaurant_Review-g503927-d3864736-Reviews"
print s.split('-')
print s.split('-')[1]
print s.split('-')[2]
更多信息在这里:http ://docs.python.org/2/library/stdtypes.html#str.split