正则表达式不工作在python脚本中

时间:2014-04-15 08:22:17

标签: python regex ip

出于某种原因,当我得到正则表达式以获得我需要的数字时,它返回none。 但是当我在这里运行http://regexr.com/38n3o时,它可以正常工作

正则表达式旨在获取ip的最后一个数字,以便将其删除

lanip=74.125.224.72
notorm=re.search("/([1-9])\w+$/g", lanip)

2 个答案:

答案 0 :(得分:1)

这不是你在Python中定义正则表达式的方式。正确的方法是:

import re
lanip="74.125.224.72"
notorm=re.search("([1-9])\w+$", lanip)
print notorm

输出:

<_sre.SRE_Match object at 0x10131df30>

您使用的是javascript正则表达式样式。要阅读有关正确python语法的更多信息,请阅读documentation

如果您想匹配IP使用的最后一个号码:

import re
lanip="74.125.224.72"
notorm=re.search("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", lanip)
print notorm.group(4)

输出:

72

正则表达式使用http://www.regular-expressions.info/examples.html

您的示例在此方案中确实有效,但会遇到很多误报。

答案 1 :(得分:0)

什么是lanip的类型?那无法运行。

它必须是一个字符串,即

lanip = "74.125.224.72"

此外,您的RE语法看起来很奇怪,请确保您已阅读documentation on Python's RE syntax