假设有一个数字和列表数据集,过滤掉其中某些不符合规则的元素,输出符合过滤条件的元素:
import re
values = ['11.2', 'a2', '3.5', '3b', '2', '-3', 'Z', '-4.67', 'H', '.5', '101']
def is_num(val):
try:
float(val)
return True
except:
return False
vals = list(filter(is_num, values))
print(vals)
#下面给出一个正则的例子。
s = '2019-03-17zhang2019-3-18phil123fly45.67csdn 89。C'
print(re.findall('[\d]{4}-[\d]+-[\d]*', s)) # *匹配0次或多次。\d相当于[0-9]
print(re.findall('[0-9]+[.][0-9]+', s)) # 寻找浮点数。+号,匹配1次或多次。
#print(re.findall(r'.C'))
cRegex = re.compile(r' .+。C') # . 通配符。.+通配1到多次。
print(cRegex.findall(s))
输出:
['11.2', '3.5', '2', '-3', '-4.67', '.5', '101']
['2019-03-17', '2019-3-18']
['45.67']
[' 89。C']