出于某种原因,当我得到正则表达式以获得我需要的数字时,它返回none。 但是当我在这里运行http://regexr.com/38n3o时,它可以正常工作
正则表达式旨在获取ip的最后一个数字,以便将其删除
lanip=74.125.224.72
notorm=re.search("/([1-9])\w+$/g", lanip)
答案 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。