Python中的正则表达式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的正则表达式?相关的知识,希望对你有一定的参考价值。
pattern = r"([1-9]1,3(\.[0-9]1,3)3)"
str1 = "127.0.0.1"
match = re.findall(pattern,str1)
print(match)
输出显示:[('127.0.0.1', '.1')]
为什么会多出一个‘.1’不理解,怎么才能解决
因为正则表达式中有两组小括号,即两个分组
findall会以元组形式返回所有分组中的内容,即[('127.0.0.1', '.1')]
其中'127.0.01'表示匹配最外层大括号的内容
'.1'表示匹配'\\.[0-9]1,3'的内容(最后一次重复时为.1)
由于('\\.[0-9]1,3')为需要重复三次的分组,该括号不能省略
而使用findall就一定会显示括号分组的内容
若想只显示127.0.0.1而不显示'.1',可考虑使用match方法
返回从字符串起始位置开始,第一次匹配正则表达式的内容
match返回的结果为re.Match对象,可通过group()显示匹配的字符串,即127.0.0.1
通过groups()显示匹配的所有分组,即('127.0.0.1', '.1')
如图所示:
python Python中的正则表达式
以上是关于Python中的正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章