LOADING

Follow me

python re(十)
十一月 30, 2013|Whistler

python re(十)



修改字符串


到目前为止,我们简单地搜索了一个静态字符串。正则表达式通常也用不同的方式,通过下面的 `RegexObject` 方法,来修改字符串。





方法/属性 作用
split() 将字符串在 RE 匹配的地方分片并生成一个列表,
sub() 找到 RE 匹配的所有子串,并将其用一个不同的字符串替换
subn() 与 sub() 相同,但返回新的字符串和替换次数


将字符串分片


`RegexObject` 的 split() 方法在 RE 匹配的地方将字符串分片,将返回列表。它同字符串的 split() 方法相似但提供更多的定界符;split()只支持空白符和固定字符串。就象你预料的那样,也有一个模块级的 re.split() 函数。


split(string [, maxsplit = 0])


通过正则表达式将字符串分片。如果捕获括号在 RE 中使用,那么它们的内容也会作为结果列表的一部分返回。如果 maxsplit 非零,那么最多只能分出 maxsplit 个分片。




你可以通过设置 maxsplit 值来限制分片数。当 maxsplit 非零时,最多只能有 maxsplit 个分片,字符串的其馀部分被做为列表的最後部分返回。在下面的例子中,定界符可以是非数字字母字符的任意序列。


#!python

>>> p = re.compile(r“W+)

>>> p.split(This is a test, short and sweet, of split().)


[Thisisatestshortandsweetofsplit]

>>> p.split(This is a test, short and sweet, of split().3)


[Thisisatest, short and sweet, of split().]


有时,你不仅对定界符之间的文本感兴趣,也需要知道定界符是什么。如果捕获括号在 RE 中使用,那么它们的值也会当作列表的一部分返回。比较下面的调用:


#!python

>>> p = re.compile(r“W+)

>>> p2 = re.compile(r(“W+))

>>> p.split(This is a test.)


[Thisisatest]

>>> p2.split(This is a test.)


[This is a test.]


模块级函数 re.split() 将 RE 作为第一个参数,其他一样。


#!python

>>> re.split([“W]+Words, words, words.)


[Wordswordswords]

>>> re.split(([“W]+)Words, words, words.)


[Wordswordswords.]

>>> re.split([“W]+Words, words, words.1)


[Wordswords, words.]


版权声明:本文为博主原创文章,未经博主允许不得转载。

no comments
Share

发表评论