Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以使用正则表达式识别字符串的最后一个字符并匹配下一个字符?_Python_Regex_String_Oid - Fatal编程技术网

Python 是否可以使用正则表达式识别字符串的最后一个字符并匹配下一个字符?

Python 是否可以使用正则表达式识别字符串的最后一个字符并匹配下一个字符?,python,regex,string,oid,Python,Regex,String,Oid,iso.3.6.1.4.1.2011.6.128.1.1.2.21.1.6.4194455040 例如,对于SNMP OID,我想捕获最后的序列号,即4194455040,有时可能是第二个最后的序列号,即6 或者我需要迭代,找出我在这个字符串中有多少个点,并捕获这些数字 语言:Python我认为最好的方法是捕获所有以点分隔的数字。然后,您可以根据自己的需要决定选择这些数字中的多少。这样做的正则表达式是:/\(\d+)/gm。这是假设您确实想要/需要使用正则表达式。否则,您可以简单地拆分字符串 演

iso.3.6.1.4.1.2011.6.128.1.1.2.21.1.6.4194455040

例如,对于SNMP OID,我想捕获最后的序列号,即4194455040,有时可能是第二个最后的序列号,即6

或者我需要迭代,找出我在这个字符串中有多少个点,并捕获这些数字


语言:Python

我认为最好的方法是捕获所有以点分隔的数字。然后,您可以根据自己的需要决定选择这些数字中的多少。这样做的正则表达式是:
/\(\d+)/gm
。这是假设您确实想要/需要使用正则表达式。否则,您可以简单地
拆分
字符串

演示:

Regex的解释相反:

  • \d
    :捕获任意数字(0到9)
  • \d+
    :至少一次
  • (\d+)
    :将其保存到组中
  • \(\d+)
    :组的开头有一个点

如果您希望只捕获最后两批数字,则可以使用以下正则表达式:。这个将把这些数字存储在组1和组2中。

需要最后一个数字时使用这个正则表达式

\d+$
工作

这个正则表达式将为您提供第二个和最后一个正则表达式

\d+(?=\.\d+$)
工作

我用的是这里的接线员。第一个很直接。它表示从行尾开始获取一个或多个数字。

第二个使用先行操作符。它表示获取一个或多个后跟
\d+$

的数字,您使用的是什么语言?你不能只使用它的函数在
分隔符处拆分字符串吗?它是python@BarmarSo use
oid.split('.')
。使用
r'(?