美文网首页
正则表达式-特殊匹配字符

正则表达式-特殊匹配字符

作者: 部落大圣 | 来源:发表于2018-10-12 00:03 被阅读46次

特殊序列

在正则表达式中可以使用各种的捕获组序列。它们被写成反斜杠,后面跟着另一个数字字符。

特殊序列是一个反斜杠和一个介于1到99之间的数字,比如: \1。数字自发表示捕获组的序列,也就是说我们可以在正则表达式里引用先前的捕获组。

import re

pattern = r"(.+)\1"

match = re.match(pattern, "word word")
if match:
    print("Match 1")
    
match = re.match(pattern, "?! ?!")
if match:
    print("Match 2")
    
match = re.match(pattern, "abc cde")
if match:
    print("Match3")
--------------------------------------------------------
Match 1
Match 2

注意(.+)\1不等同于(.+)(.+),因为\1引用第一个组的表达式,即匹配表达式本身,而不是正则表达式。

特殊匹配

正则中还有一些特殊的匹配模式\d,\s,和\w,它们匹配数字,空白和单词字符。在ASCII模式里正则里等同[0-9],[\t\n\r\f\v]和[a-zA-Z0-9],但是在Unicode模式里\w匹配一个字。

如果我们把这几个字母变成大写\D,\S,和\W,那么意味着匹配模式相反。比如:\D匹配非数字。

import re

pattern = r"(\D+\d)"

match = re.match(pattern, "Hi 999!")
if match:
    print("Match 1")
    
match = re.match(pattern, "1, 23, 456!")
if match:
    print("Match 2")
    
match = re.match(pattern, "!$?")
if match:
    print("Match 3")
----------------------------------------------------------------
Match 1

(\D+\d)意味着匹配一个或者多个非数字后面跟随一个数字。

还有一些特殊的匹配表达式\A,\Z,和\b。\A仅匹配字符串的开始,在大多数条件下,它的作用等同于在模式中使用^。\Z仅匹配字符串的结束,相当于$在大多数情况下。

\b匹配一个词的边界。一个词的边界就是一个词不被另一个词跟随的位置或者不是另一个词汇字符前边的位置,相当于\w和\W之间有一个空字符串。

\B匹配一个非单词边界。它匹配一个前后字符都是相同类型的位置:都是单词或者都不是单词。一个字符串的开始和结束都被认为是非单词。

import re

pattern = r"\b(cat)\b"

match = re.search(pattern, "The cat sat!")
if match:
    print("Match 1")
    
match = re.search(pattern, "We s>cat>tered?")
if match:
    print("Match 2")
    
match = re.search(pattern,"We scattered.")
if match:
    print("Match 3")
----------------------------------------------------------
Match 1
Match 2

注意,一个匹配词的边界并不包括在匹配的内容中。换句话说,一个匹配的词的边界的内容的长度是0。"\b(cat)\b"。

相关文章

  • 正则表达式笔记

    正则表达式 特殊字符 限定符 次数匹配 特殊字符匹配 符号含义如何匹配本身?最多只出现0次或1次\?*可以不出现,...

  • MySQL 正则表达式查询

    正则表达式用来匹配文本的特殊的串(字符集合)。正则表达式用正则表达式语言来建立,正则表达式语言是用来完成匹配特殊的...

  • 正则表达式

    正则表达式中的特殊字符 \ 匹配一个字符边界,表示下一个字符是特殊的$ 匹配输入的结束^ 匹配输入的开始*匹配前一...

  • 4. Python 正则表达式

    正则表达式 正则表达式是一个特殊的字符序列,用于检查字符串是否与某种模式匹配 正则表达式测试工具 常用匹配规则 常...

  • Python的奇技淫巧(0)---正则表达式

    正则表达式是一个特殊的字符序列正则表达式的作用有很多,例如: 定界符 ^ : 匹配字符串的开始位置 $ : 匹配字...

  • 常用的正则表达式

    微软-正则表达式语法菜鸟教程-正则 特殊字符 若要匹配这些特殊字符之一,必须首先转义字符,即,在字符前面加反斜杠字...

  • 关键字学习

    特殊语法 CONCATENATE FIND “匹配相同的字符 导入内表 "找到匹配的位置 和 长度 ”正则表达式 ...

  • 正则表达式

    概念: 按照某种规则匹配符合条件的字符串 语法: 元字符: 在正则表达式有特殊含义的非字母字符 边界类^:匹配开头...

  • 正则表达式

    课前补充转义字符“\”多行字符串字符串换行符\n 正则表达式的作用:匹配特殊字符或有特殊搭配原则的字符的最佳选择。...

  • 正则表达式总结

    正则表达式特殊字符 1 匹配汉字的正则表达式 [\u4e00-\u9fa5] 2 匹配邮箱只要格式正确就匹配 不做...

网友评论

      本文标题:正则表达式-特殊匹配字符

      本文链接:https://www.haomeiwen.com/subject/pnxvaftx.html