Python re.search 正则表达式 - 如何在字符串的最后四位中搜索值
我写了一个Python脚本(这是我写的第一个脚本),它可以接受一个字符串作为输入,然后使用re.search来从这个字符串中创建一些组,以便后续使用。
输入的字符串大概是这样的:
NSC_sdiakjfean=ffffffff3c19594d45525d5f4f58455e445a4a423660
我现在使用的re.search是:
s = re.search('NSC_([a-zA-Z0-9\-\_\.]*)=[0-9a-f]{8}([0-9a-f]{8})[0-9a-f]{24}([0-9a-f]{4})',name)
我遇到的问题是,有时候我想用的输入缺少这个部分[0-9a-f]{24},这样我的Python脚本就会崩溃,抛出异常,并且无法捕获最后一组。
有没有什么正则表达式(是的,我已经在网上查了很多次)可以让我在输入字符串的末尾开始,只提取最后4个数字呢?
提前谢谢你。
亚当
2 个回答
1
你不需要用正则表达式来找出一个字符串最后四个字符的值,其实你可以用下面这种简单的方法:
s = 'NSC_sdiakjfean=ffffffff3c19594d45525d5f4f58455e445a4a423660'
print s[-4:]
2
$
表示字符串的结尾。
>>> import re
>>> re.search("1234$","lkjlkj1234") # matches
<_sre.SRE_Match object at 0x6a10578>
>>> re.search("1234$","lkjlkj1234ff") # does not match
>>>
所以你可能想要的表达式是
s = re.search('([0-9a-f]{4})$',name)