re.sub()

Posted 王记不住

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re.sub()相关的知识,希望对你有一定的参考价值。

re是regular expression的所写,表示正则表达式

sub是substitute的所写,表示替换;

re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能;

举个最简单的例子:

如果目标字符串比较简单,如下操作就可以了:

string = "hello 111 world"
string.repalce(\'111\',\'\')
print string

结果为(注意,这里hello和world中间是两个空格):

hello  world 

但是如果比较复杂,比如:

这种情况的时候正则更有用。 记得是 \\ 啊

 对于输入的一个字符串,利用正则表达式(的强大的字符串处理功能),去实现(相对复杂的)字符串替换处理,然后返回被替换后的字符串

 

re.sub共有五个参数。

其中三个必选参数:patternreplstring

两个可选参数:countflags

第一个参数:pattern

pattern,表示正则中的模式字符串

需要知道的是:

  • 反斜杠加数字(\\N),则对应着匹配的组(matched group)
    • 比如\\6,表示匹配前面pattern中的第6个group
    • 意味着,pattern中,前面肯定是存在对应的,第6个group,然后你后面也才能去引用

比如,想要处理:

hello crifan, nihao crifan

且此处的,前后的crifan,肯定是一样的。

而想要把整个这样的字符串,换成crifanli

则就可以这样的re.sub实现替换:

string = "hello fan, nihao fan"
replaceStr = re.sub(r"hello (\\w+), nihao \\1","wb",string)
print replaceStr

这样不对啊?什么情况?

第二个参数:repl

repl,就是replacement,被替换,的字符串的意思。

repl可以是字符串,也可以是函数。

第三个参数:string

string,即表示要被处理,要被替换的那个string字符串。

周末我估计我也不会写完,完犊子

 

以上是关于re.sub()的主要内容,如果未能解决你的问题,请参考以下文章

python re.sub 带有要查找的单词列表

python 正则表达式 re.sub & re.subn

当我尝试在我的代码中使用 re.sub 表达式时,为啥会收到一个名为“预期字符串或类似对象的字节”的错误 [重复]

Python re.sub 字符串上的多行

re.sub的使用方法有哪些?

在 re.sub 替换模式中处理对捕获组的反向引用