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’不理解,怎么才能解决

参考技术A

因为正则表达式中有两组小括号,即两个分组

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中的正则表达式

import re

#Match any word
wre = re.compile('\w')
wre.sub(' ','This. Is, A, Text{}')  #Replace any word with an empty strijng

#Match everything that is not a word
notwre = re.compile('[^\w]')
notwre.sub('','This. Is, A, Text{}')

以上是关于Python中的正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

如何理解Python中的正则表达式

Python正则表达式中的re.S

转载Python中的正则表达式教程

Python中的正则表达式

转载Python中的正则表达式教程

python中的正则表达式