python re.search regex - 如何在字符串的最后 4 位中搜索值

标签 python regex

我编写了一个 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 位数字进行分组?

提前致谢。

亚当

最佳答案

$ 匹配字符串的结尾。

>>> 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)

关于python re.search regex - 如何在字符串的最后 4 位中搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003301/

相关文章:

python - 将对象(字符串)转换为 Int32 : TypeError: object cannot be converted to an IntegerDtype 时出错

Python:通过交替包含来自其他两个行的行来创建单个数据框

python - fitz.open() 在 for 循环中不起作用(FITZ、PYTHON、PYMUPDF)

python - 从特定位置提取数据,无论空格如何

regex - Postgres SQL WHERE 子句在模式匹配中包含 'OR'

java - 使用 Java Regex 从 String 中提取数据

ruby - 在正则表达式中使用否定条件

python - 将电子邮件标记为已读python

python - Microsoft Azure IoT Python SDK 可以成功配置但无法使用相同的凭据进行连接

javascript - 正则表达式删除除字母和 '[单引号] 之外的任何内容