我有一个字符串,如果一个单词的字母部分超过3个字母,我想存储在一个列表中。我需要把“hour”和“lalal”存储到一个列表中。 我为alpha数字和数字alpha序列编写了一个regex模式,如下所示。你知道吗
regex = ["([a-zA-Z])-([0-9])*","([0-9])*-([a-zA-Z])"]
tring = 'f-16 is 1-hour, lalal-54'
for r in regex:
m = re.search(r,tring)
d.append((m.group(0))
print(d)
但这显然给了我所有被存储的字母数字模式。所以,我想我可以扩展它来计算每个模式中的字母,并以不同的方式存储它们。有可能吗?你知道吗
编辑:另一个例子是 我一小时后到 这个的输出应该是['hour']
因此,如果字母数字文本前面或后面有数字和连字符,则只需要捕获字母数字文本。你可以使用这个正则表达式,它使用交替来捕获这两种情况
说明:
([a-zA-Z]{4,})
-捕获长度为4或更多的字母数字文本并存储在group1中-\d+
-确保它后跟连字符和一个或多个数字|
-交替,因为有两种情况\d+-
-匹配一个或多个数字和连字符([a-zA-Z]{4,})
-捕获长度为4或4以上的字母数字文本并存储在group2中Demo
检查python代码
指纹
相关问题 更多 >
编程相关推荐