说我有一个过程代码列表,如下所示:
procedure_codes = ['038911.B', '32431.1', 'fdsfd.B', '13635.1B', '78935.1b']
在python中,我现在要提取所有代码:
对我来说,最合乎逻辑的方法似乎是使用正则表达式,所以我尝试了
组合(对于列表中的每个元素):
for i in procedure_codes:
if re.search('[^0]\d+\.\d[^bB]?', i):
print(i)
我怀疑python只返回代码:“ 32431.1”,但返回的是:
因此,最终的否定似乎被完全忽略了
由于我是刚开始使用正则表达式的新手,所以我不知道我只是在犯语法错误还是完全误解了正则表达式。
答案 0 :(得分:1)
只需用^
和$
包装您的正则表达式以分别匹配行的开头和行的结尾:
^[^0]\d+\.\d[^bB]?$
因为没有它们,它在13635.1
中找到了13635.1B
组,而在78935.1b
中找到了相同的组。