我在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
答案 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]+
替换该部分。