正则表达式系列(一):匹配开头与结尾

准备说明:

1.实例中正则表达式来源于《精通正则表达式》一书

2.正则表达式实现方式为Python3.7


1.匹配开头

表达式"cat"可以匹配catwcat^符会强制要求表达式从字符串开头匹配,"^cat"可以匹配cat,但不能匹配wcat

>>> s = "wcat"

>>> re.search(r"cat", s)

<re.Match object; span=(1, 4), match='cat'>

>>> re.search(r"^cat", s)

>>> 


2.匹配结尾

匹配开头类似,"foo"可以配foofoobar$符会强制要求表达式结尾字符匹配成功,"foo$"可以匹配foo,但不能匹配foobar

>>> s = "foobar"

>>> re.search(r"foo", s)

<re.Match object; span=(0, 3), match='foo'>

>>> re.search(r"foo$", s)

>>> 


3.MULTILINE 模式

MULTILINE 模式下,开头匹配^和结尾匹配$会有一些变化。^可以匹配换行后字符,$可以配换行前字符。

>>> s = "w\ncat"

>>> re.search(r"^cat$", s)

>>> re.search(r"^cat$", s, re.MULTILINE)

<re.Match object; span=(2, 5), match='cat'>


4.完整示例

import re



"""

行的起始与结束

"""





def main():

    s = 'scat'

    pattern = re.compile('^\wcat$')

    match = re.match(pattern, s)

    print(match)



    s = "s\ncat"

    m = re.search(r"^cat$", s, re.MULTILINE)

    print(m)





if __name__ == '__main__':

    main()



5.总结

^和$是强制要求表达式开头和结尾字符的匹配,在复制情况下限定可以加快正则表达式的运行速度。

展开阅读全文