正则表达式之边界

\b被称为单词边界,\B被称为非单词边界,\b与\B是非的关系。

python里面字母和数字有边界这一说,与英文单词的边界类似。

一个英文单词一般空格、换行、标点符号或者特殊符号来表示边界。

例如:

my name is lucy!

my的边界是空格和句子开头,name的边界也是空格,is的边界也是空格,lucy的边界有两个一个是空格一个是!

用\b匹配my和匹配lucy的代码如下:

  1.  
    import re
  2.  
    def test_operator():
  3.  
    print('匹配my:', re.findall('\\bmy\\b', 'my name is lucy!'))
  4.  
    print('匹配lucy:', re.findall('\\blucy\\b', 'my name is lucy!'))
  5.  
     
  6.  
    if __name__ == '__main__':
  7.  
    test_operator()
  8.  
    pass

但是,如果想匹配lucy中的uc用\b是行不通的,用\b的反面\B最快捷,当然也可以用其他方法匹配,这里演示用\B,代码如下:

  1.  
    import re
  2.  
    def test_operator():
  3.  
    print('匹配uc:', re.findall('\\Buc\\B', 'my name is lucy!'))
  4.  
     
  5.  
    if __name__ == '__main__':
  6.  
    test_operator()
  7.  
    pass

posted @ 2023-07-08 20:50  猪油哥  阅读(135)  评论(0)    收藏  举报