-3

我是 python 正则表达式的新手,所以任何帮助都将不胜感激。提前致谢。

我有这个 string = "Restaurant_Review-g503927-d3864736-Reviews"

我想从中提取“g503927”和“d3864736”。

我知道你可以使用re.match(pattern, string, flags=0)

但不确定如何为其编写正则表达式。请帮忙

4

4 回答 4

2

使用re.findall

>>> s = "Restaurant_Review-g503927-d3864736-Reviews"
>>> re.findall('[a-z]\d+', s)
['g503927', 'd3864736']

[a-z]\d+匹配小写字母后跟数字。

于 2013-08-05T17:19:25.117 回答
0

这应该工作

import re
pattern = re.compile("[a-z][0-9]+")
于 2013-08-05T17:21:04.030 回答
0

一个非正则表达式解决方案,但它取决于界定单位的内容,这里我假设它是-

s = "Restaurant_Review-g503927-d3864736-Reviews"
outputs = [i for i in s.split('-') if i[0].isalpha() and i[1:].isdigit()]
于 2013-08-05T17:26:22.903 回答
-1

无需使用正则表达式...使用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

于 2013-08-05T17:22:27.287 回答