初学者有正则表达式;需要帮助编写特定的查询 - 空格,后跟1-3个数字,后跟任意数量的字母

时间:2017-04-13 01:44:22

标签: python regex expression

我正在处理一些格式不正确的HTML,我需要查找某种类型模式的每个实例。问题如下:

空格,后跟1到3位数字,后跟字母(通常是一个单词)。以下是我的意思的一些例子。

hello 7Out
how 99In
are 123May

所以我会寻找表达式来获得" 7Out"," 99In"," 123May"等。初始空间不需要包括在内。我希望这是足够描述性的,因为我实际上只是开始暴露自己的正则表达式,我仍然在苦苦挣扎。最后,我想要计算这些实例的总数,并将总计数添加到已经存在的df中,所以如果您对如何做到这一点有任何建议,我也会对此持开放态度。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的正则表达式为:r'\w\s(\d{1,3}[a-zA-Z]+)'

因此,为了获得计数,您可以在findall返回的列表上使用len()。代码将是

import re
string='hello 70qwqeqwfwe123 12wfgtr123 34wfegr123 dqwfrgb'
result=re.findall(r'\w\s(\d{1,3}[a-zA-Z]+)',string)
print "result = ",result #this will give you all the found occurances as list
print "len(result) = ",len(result) #this will give you total no of occurances.

结果将是:

result = ['70qwqeqwfwe', '12wfgtr', '34wfegr']
len(result) = 3

提示:findall将评估正则表达式并根据分组返回结果。我正在用它来解决这个问题。

试试这些:

re.findall(r'(\w\s((\d{1,3})[a-zA-Z]+))',string)
re.findall(r'\w\s((\d{1,3})[a-zA-Z]+)',string)

要了解正则表达式,请参考python retutorials point并使用匹配的字符来使用this.