我有以下代码:
tablesInDataset = ["henry_jones_12345678", "henry_jones", "henry_jones_123"]
for table in tablesInDataset:
tableregex = re.compile("\d{8}")
tablespec = re.match(tableregex, table)
everythingbeforedigits = tablespec.group(0)
digits = tablespec.group(1)
我的正则表达式应该只返回在下划线后包含8位数字的字符串。一旦它返回字符串,我想使用.match()
使用.group()
方法得到两个组。第一组应包含一个字符串,该字符串将包含数字之前的所有字符,第二组应包含一个8位的字符串。你知道吗
使用.match()
和.group()
得到我想要的结果的正确正则表达式是什么?你知道吗
我认为这个模式应该符合您的需要:
(.*?_)(\d{8})
。你知道吗第一组包括8位以内的所有内容,包括下划线。第二组是8位数字。你知道吗
如果不希望包含下划线,请改用:
(.*?)_(\d{8})
使用捕获组:
如果需要,您可以获得命名组的良好功能:
相关问题 更多 >
编程相关推荐