首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配

您可能不知道某个企业的确切电话号码,但如果您住在美国或加拿大,您会知道它是三位数字,后跟一个连字符,然后是四位数字(还可以选择以三位数字的区号开头)。...大括号的非贪婪(也称为惰性)版本匹配尽可能最短的字符串,右大括号后面跟一个问号。...['o', 'o', 'o', 'e', 'a', 'a', 'o', 'o', 'A', 'O', 'O'] 您还可以使用连字符包含字母或数字的范围。...在交互式 Shell 中输入以下内容,查看贪婪版本和非贪婪版本之间的区别: >>> nongreedyRegex = re.compile(r'字符串' for dinner.>'对于右尖括号有两个可能的匹配。在非贪婪版本的正则表达式中,Python 匹配最短的可能字符串:''。

6.6K40

Regular

1.2 字符组 1.2.1 范围表示法 当字符组里的字符特别多,可用”-“进行连接,比如 [123456abcdefGHIJKLM],可以写成 [1-6a-fG-M]。用连字符 - 来省略和简写。...要匹配 “a”、”-“、”z” 这三者中任意一个字符,可以写成如下的方式:[-az] 或 [az-] 或 [a-z]。...此时就可以使用排除字符组[^abc]来表示,该符号为脱字符 1.2.3 常见的简写形式 字符组 字符含义 \d [0-9] \D [^0-9] \w [0-9a-zA-Z_] 数字、字母、下划线 \W...[^0-9a-zA-Z_] 非单词词组 \s [\t\v\n\r\f] 空白符 \S [^\t\v\n\r\f] 非空白符 ....通配符 使用 [\d\D]、[\w\W]、[\s\S] 和 [^] 中任何的一个可表示匹配任意字符 1.3 量词 1.3.1 简写形式 量词 具体形式 {m,} 至少出现m次 {m} 出现m次 ?

42830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    正则表达式-入门

    (英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。...二 正则表达式的字符区间 []这个元符号可以定义一个字符集合,字符集合能够与在该集合里的字符区间的字符相匹配。字符区间可以使用 - 连字符来定义范围。...的文本行结束标签 五 正则表达式的其他元字符 \d 匹配任何一个数字字符 \D 匹配任何一个非数字字符 \w 匹配任何一个字母数字字符(大小写)或者下划线字 符=[0-9a-zA-Z_] \W 匹配任何一个非字母数字或非下划线字符...=[^0-9a-zA- Z_] \s 匹配任何一个空白字符=[\f\r\n\t\v] \S 匹配任何一个非空白字符=[^\f\n\r\t\v] 六 正则表达式匹配字符 + 匹配一个或多个字符 *...八 正则表达式边界字符 \w相匹配的字符叫做单词边界,\W相匹配的叫做非单词边界 \b单词边界字符,例如:至匹配 at 而不匹配 what,可以使用 --\bat\b \B匹配一个前后都不是单词边界的连字符

    41330

    6.8K Star神器!自动生成正则表达式

    项目介绍 Grex是一个由Rust语言开发的命令行工具和库,根据用户提供的测试用例生成正则表达式。该工具可以作为库或命令行工具使用,提供了丰富的功能和特性,使用户能够快速生成有效的正则表达式。...功能特点 1.支持多种正则表达式元素:Grex支持字面量、字符类、常见前缀和后缀检测、重复子串转换为 {min,max} 量词表示、使用 | 运算符的替换、使用 ?...量词的选项、转义非ASCII字符等功能,用户可以根据需要选择不同元素来生成更精确的正则表达式。...2.兼容性和可扩展性:Grex完全兼容Unicode标准15.0版本,与regex crate 1.9.0及更高版本完全兼容,正确处理由多个Unicode符号组成的图形元素,具有良好的兼容性和可扩展性。...4.可定制化选项:用户可以选择大小写敏感或不敏感匹配、捕获组或非捕获组等选项,根据具体需求对生成的正则表达式进行定制化,增加灵活性和适应性。

    25710

    第一章 正则表达式字符匹配攻略

    用连字符-来省略和简写。 因为连字符有特殊用途,那么要匹配“a”、“-”、“z”这三者中任意一个字符,该怎么做呢? 不能写成[a-z],因为其表示小写字符中的任何一个字符。...可以写成如下的方式:[-az]或[az-]或[a\-z]。即要么放在开头,要么放在结尾,要么转义。总之不会让引擎认为是范围表示法就行了。...表示除数字外的任意字符。 \w就是[0-9a-zA-Z_]。表示数字、大小写字母和下划线。记忆方式:w是word的简写,也称单词字符。 \W是[^0-9a-zA-Z_]。非单词字符。...案例分析 匹配字符,无非就是字符组、量词和分支结构的组合使用罢了。...其中字符可以出现3或6次,需要是用量词和分支结构。 使用分支结构时,需要注意顺序。

    1.8K101

    .NET下正则表达式应用的四个示例

    您可以使用 IsValidEmail,在应用程序将地址存储在数据库中或显示在 ASP.NET 页中之前,筛选出包含无效字符的电子邮件地址。 ...$");  }  2.清理输入字符串  下面的代码示例使用静态 Regex.Replace 方法从字符串中抽出无效字符。...您可以使用这里定义的 CleanInput 方法,清除掉在接受用户输入的窗体的文本字段中输入的可能有害的字符。CleanInput 在清除掉除 @、-(连字符)和 ....(句点)以外的所有非字母数字字符后返回一个字符串。 ...组捕获的子字符串。  有几种静态函数使您可以在使用正则表达式操作时无需创建显式正则表达式对象,而 Regex.Replace 函数正是其中之一。

    1.5K10

    正则表达式构造

    正则表达式是正则表达式引擎尝试匹配输入文本的一种模式。 模式由一个或多个字符文本、运算符或构造组成。...inputs + " dose not match " + pattern); } } } } 运行结果:ab matches [abc] [^...]匹配非方括号中字符的任意字符...运行结果:good matche [^abc] 连字符'-'表示范围,如[0123456789]等价于[0-9] 正则表达式提供常用的一些字符类: [\d] = [0-9] [\D] = [^0-9]...number 次 如果要规定一个字符串的出现次数,必须使用(),在括号内填写字符串,在闭括号之后添加量词 namespace ConsoleApplication { class Program...锚点(规定匹配的位置) \b单词分界符锚点 \b表示单词分界符,要求一侧是单词字符,另一侧是非单词字符 单词字符通常是指的是英文字符、数字字符,对中文不适用 非单词字符通常指的是各种标点符号和空白字符

    80560

    正则表达式来了,Excel中的正则表达式匹配示例

    假设每个SKU由2个大写字母、一个连字符和3个数字组成,可以使用以下表达式匹配它们。...在Excel2019及以前的版本中,要使用传统的数组公式,即输入完后要按Ctrl+Shift+Enter组合键。...\d{4}\b 分解这个正则表达式,如下: 第一部分(\(\d{3}\)\d{3})匹配括号内或不带括号的3位数字。 [-\.\s]?部分表示方括号中任何字符出现0或1次:连字符、句点或空格。...接下来,还有一组3位数字d{3},后跟任何连字符、句点或空格[\-\.\s]?出现0或1次。 最后一组4位数字\d{4}后跟一个单词边界\b,以明确电话号码不能是较大号码的一部分。...记住\w匹配任何字母、数字或下划线,我们得到以下正则表达式:[\w\.\-]+ 域名可能包括大小写字母、数字、连字符(但不在第一个或最后一个位置)和点(在子域的情况下)。

    22K30

    正则表达式 - 电话号码

    该表达式中的连字符是一个字面值,因此会被原样匹配。除了和上面表达式一样,使用连字符本身(-)来匹配连字符之外,也可以用转义的大写D(\D),它匹配任何一个非数字字符。...包含数字的花括号是一种量词(quantifier)。花括号本身用做元字符。问号是另一种量词,在以上表达式中表示连字符是可选的。也就是说,连字符可以不出现或只出现一次。...这个正则表达式表示括号里的模式出现一次或多次,括号里的模式匹配三位或四位数字,后跟一个连字符或一个点号。...(匹配点号本身);连字符 - 匹配连字符的本身;右方括号 ] 为字符组的结束符;问号 ?表示量词“零个或一个”;右圆括号 ) 为捕获分组的结束符;加号 + 表示量词“一个或多个”。...匹配一个可选的点号或连字符。这部分表达式表示“匹配一个带括号的区号,或一个不带括号但可能包含连字符的区号”: (xxx) xxx xxx.

    62120

    正则表达式学习

    “Regular expression”这个词比较拗口,我们常使用缩写的术语“regex”或“regexp”。...想象你正在写一个应用,然后你想设定一个用户命名的规则,让用户名包含字符、数字、下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑。...在线练习 2.2 字符集 字符集也叫做字符类。 方括号用来指定一个字符集。 在方括号中使用连字符来指定字符集的范围。 在方括号中的字符集不关心顺序。...如果想要匹配这些特殊字符则要在其前面加上反斜线 \。 例如 . 是用来匹配除换行符外的所有字符的。如果想要匹配句子中的 . 则要写成 \. 以下这个例子 \.?是选择性匹配....零宽度断言(前后预查) 先行断言和后发断言(合称 lookaround)都属于非捕获组(用于匹配模式,但不包括在匹配列表中)。当我们需要一个模式的前面或后面有另一个特定的模式时,就可以使用它们。

    1.7K20

    还不会正则表达式?看这篇!

    正则表达式(Regular Expression或Regex),是用于定义某种特定搜索模式的字符组合。正则表达式可用于匹配、查找和替换文本中的字符,进行输入数据的验证,查找英文单词的拼写错误等。...个人比较偏好Regex101,regex101支持在正则表达式的不同flavor之间切换、解释你的正则表达式、显示匹配信息、提供常用语法参考等功能,非常强大。 Regex101 ?...m:多行匹配(multiline);将开始和结束字符(^和$)视为在多行上工作,即分别匹配每一行(由 \n 或 \r 分割)的开始和结束,而不只是只匹配整个输入字符串的最开始和最末尾处 Flags可以组合使用...常见的元字符有: \d:匹配任意数字,等价于 [0-9] \D:匹配任意非数字字符;\d 的补集 \w:匹配任意基本拉丁字母表中的字母和数字,以及下划线;等价于 [A-Za-z0-9_] \W:匹配任意非基本拉丁字母表中的字母和数字...、连字符(-),长度大于0 domain:任意英文字母(a-z/A-Z)、数字(0-9)、连字符(-),长度大于0 extension:任意英文字母(a-z/A-Z),长度2-8 optional-extension

    77620

    第五章 正则表达式的拆分

    字符字面量、字符组、量词、锚字符、分组、选择分支、反向引用。 具体含义简要回顾如下(如懂,可以略去不看): 字面量,匹配一个具体字符,包括不用转义的和需要转义的。...另外还有反义字符组,表示可以是除了特定字符之外任何一个字符,比如 [^0-9],表示一个非数字字符,也有 \D的简写形式。 量词,表示一个字符连续出现,比如 a{1,3}表示“a”字符连续出现3次。...分组,用括号表示一个整体,比如 (ab)+,表示"ab"两个字符连续出现多次,也可以使用非捕获分组 (?:ab)+。...当然,匹配的字符串也是"{,n}",测试如下: var string = "{,3}"; var regex = /{,3}/g;console.log( string.match(regex)[0]...\d{15}表示15位连续数字。 \d{17}[\dxX]表示17位连续数字,最后一位可以是数字可以大小写字母"x"。 可视化如下: ?

    1.4K70

    JavaScript·JavaScript 正则技巧

    匹配文件名或文件夹名,不能包含一些特殊字符,需要排除字符组 来表示合法字符,且文件名或文件夹名不能为空,至少有一个字符,需要使用量词 +。...反向引用有三个 Tips: Tip1:如果出现类似 \10,则表示第 10 个分组而不是 \1 和 0,如果需要表示后者,需要使用非捕获括号,表示成 (?:\1)0 或 \1(?:0)。...非捕获括号 之前的例子,括号里的分组或捕获数据,以便后续引用,称之为捕获型分组和捕获型分支。如果只想使用括号原始功能,可以使用非捕获型括号 (?:p) 和 (?:p1|p2|p3)。...结构 说明 字符字面量 匹配一个具体字符,包括转义与非转义 字符组 匹配一个多种可能的字符 量词 匹配连续出现的字符 锚 匹配一个位置 分组 匹配一个括号整体 选择分支 匹配多个子表达式之一 其中涉及的操作符有...正则的构建 构建正则的平衡法则: 匹配预期的字符串 不匹配非预期的字符串 可读性和可维护性 效率 这里只谈如何改善匹配效率的几种方式: 使用具体型字符组来代替通配符,来消除回溯 使用非捕获分组。

    1.5K20

    还不会正则表达式?看这篇!

    正则表达式(Regular Expression或Regex),是用于定义某种特定搜索模式的字符组合。正则表达式可用于匹配、查找和替换文本中的字符,进行输入数据的验证,查找英文单词的拼写错误等。...个人比较偏好Regex101,regex101支持在正则表达式的不同flavor之间切换、解释你的正则表达式、显示匹配信息、提供常用语法参考等功能,非常强大。 Regex101 ? Regexr ?...m:多行匹配(multiline);将开始和结束字符(^和$)视为在多行上工作,即分别匹配每一行(由 \n 或 \r 分割)的开始和结束,而不只是只匹配整个输入字符串的最开始和最末尾处 Flags可以组合使用...常见的元字符有: \d:匹配任意数字,等价于 [0-9] \D:匹配任意非数字字符;\d 的补集 \w:匹配任意基本拉丁字母表中的字母和数字,以及下划线;等价于 [A-Za-z0-9_] \W:匹配任意非基本拉丁字母表中的字母和数字...、连字符(-),长度大于0 domain:任意英文字母(a-z/A-Z)、数字(0-9)、连字符(-),长度大于0 extension:任意英文字母(a-z/A-Z),长度2-8 optional-extension

    70810

    还不会正则表达式?看这篇!

    正则表达式(Regular Expression或Regex),是用于定义某种特定搜索模式的字符组合。正则表达式可用于匹配、查找和替换文本中的字符,进行输入数据的验证,查找英文单词的拼写错误等。...个人比较偏好Regex101,regex101支持在正则表达式的不同flavor之间切换、解释你的正则表达式、显示匹配信息、提供常用语法参考等功能,非常强大。...m:多行匹配(multiline);将开始和结束字符(^和$)视为在多行上工作,即分别匹配每一行(由 \n 或 \r 分割)的开始和结束,而不只是只匹配整个输入字符串的最开始和最末尾处 Flags可以组合使用...的字面意思 |:替换字符(alternate character),匹配 | 前或后的表达式。...、连字符(-),长度大于0 domain:任意英文字母(a-z/A-Z)、数字(0-9)、连字符(-),长度大于0 extension:任意英文字母(a-z/A-Z),长度2-8 optional-extension

    90940

    第五章 正则表达式的拆分【修订】

    字符字面量、字符组、量词、锚字符、分组、选择分支、反向引用。 具体含义简要回顾如下(如懂,可以略去不看): 字面量,匹配一个具体字符,包括不用转义的和需要转义的。...另外还有反义字符组,表示可以是除了特定字符之外任何一个字符,比如 [^0-9],表示一个非数字字符,也有 \D的简写形式。 量词,表示一个字符连续出现,比如 a{1,3}表示“a”字符连续出现3次。...分组,用括号表示一个整体,比如 (ab)+,表示"ab"两个字符连续出现多次,也可以使用非捕获分组 (?:ab)+。...当然,匹配的字符串也是"{,n}",测试如下: var string = "{,3}"; var regex = /{,3}/g; console.log( string.match(regex)[0]...\d{15}表示15位连续数字。 \d{17}[\dxX]表示17位连续数字,最后一位可以是数字可以大小写字母"x"。 可视化如下: ?

    88160

    一文掌握正则表达式

    "Regular expression"这个词比较拗口, 我们常使用缩写的术语"regex"或"regexp"....想象你正在写一个应用, 然后你想设定一个用户命名的规则, 让用户名包含字符,数字,下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑. 我们使用以下正则表达式来验证一个用户名: ?...方括号用来指定一个字符集. 在方括号中使用连字符来指定字符集的范围. 在方括号中的字符集不关心顺序. 例如, 表达式[Tt]he 匹配 the 和 The....这些特殊字符. 如果想要匹配这些特殊字符则要在其前面加上反斜线 \. 例如 . 是用来匹配除换行符外的所有字符的. 如果想要匹配句子中的 . 则要写成 \. 以下这个例子 \.?是选择性匹配....简写字符集 正则表达式提供一些常用的字符集简写. 如下: 除换行符外的所有字符 4. 零宽度断言(前后预查) 先行断言和后发断言都属于非捕获簇(不捕获文本 ,也不针对组合计进行计数).

    2.1K20

    正则表达式入门

    1.什么是正则表达式 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念...正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。...点运算符匹配除了换行符以外的任意字符 ? 3.2 字符类 [] 方括号用来指定一个字符集,在方括号中使用连字符来指定字符集的范围,并且方括号中的字符集不关心顺序 ?...除换行符外的所有字符 \w 匹配所有字母数字,等同于[a-zA-Z0-9] \W 匹配所有非字母数字,即符号,等同于[^\w] \d 匹配数字: [0-9] \D 匹配非数字:[^\d] \s 匹配所有空格字符...零宽度断言(前后预查) 正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,这两个术语非常形象的描述了正则引擎的匹配行为。

    92420

    正则表达式的总结

    ; } } 命名空间:  System.Text.RegularExpressions下的Regex类 该类不是静态类却有自己的静态方法和非静态方法虽然方法名字都是...表示除了\n外的一切单字符 [a-zA-Z] 表示a到z 或者 A到Z之间的任意一个字符 [a\-]      表示只能匹配 单字符a 和 单字符-   -前面加一个\是转义的意思 -是连字符需要转义...]  ()          类似数学的作用改变逻辑顺序 |            表示或的意思 限定符 {n}        表示{}前面的单字符必须出现n次才匹配成功,如果遇到()则()里面的必须出现...^代表非的意思,匹配0到9意外的任意单个字符 $              表示字符串的结束(要匹配的正则表达式的结束) abc$         表示字符串必须以abc结尾 简写 \d             ...所以我们如果仅仅需要半角的数字只能使用[0-9]这样的书写方法) \D            表示[^0-9] \s             表示所有空白符 \S             是\s的反面

    69180
    领券