grep前缀python字符串

时间:2011-12-08 18:29:31

标签: python

我在python中使用findall时遇到问题。

我的文字如下:

the name of 33e4853h45y45 is one of the 33e445a64b65 and we want all the 33e5c44598e46 to be matched

所以我试图在文本中找到所有出现的字母数字字符串。事情是我知道他们都有“33e”前缀。

现在,我有strings = re.findall(r"(33e+)+", stdout_value),但它不起作用。 我希望能够返回33e445a64b65, 33e5c44598e46

2 个答案:

答案 0 :(得分:2)

试试这个

>>> x="the name of 33e4853h45y45 is one of the 33e445a64b65 and we want all the 33e5c44598e46 to be matched"
>>> re.findall("33e\w+",x)
['33e4853h45y45', '33e445a64b65', '33e5c44598e46']

答案 1 :(得分:1)

这是一个小小的变化:

>>> string = '''the name of 33e4853h45y45 is one of the 33e445a64b65 and we want all the 33e5c44598e46 to be matched'''
>>> re.findall(r"(33e[a-z0-9]+)", string)
['33e4853h45y45', '33e445a64b65', '33e5c44598e46']

它不会匹配任何单词字符,而只会匹配33e之后的数字和小写数字 - 这就是[a-z0-9]+的含义。

如果您还要匹配大写字母,则可以用[a-zA-Z0-9]+替换该部分。