Python 正则表达式实例大全

正则表达式在编程中常用于查找和替换字符串,验证用户输入,在很多语言中都可以使用。此文我写了一下 Python 的正则表达式实例,例子我参照书籍 《Regular Expression Recipes
for Windows Developers A Problem-Solution Approach》中的 C# 表达式应用例子,除了 C#,这本书还包含 VB.Net, VBScript, JavaScript 的实例。

一、单词和文本

实例 正则表达式
查找空白行 ^\s*$
查找单词 something \bsomething\b
查找单词 moo 或 oink \s+(moo|oink)\s+
查找 John, Jon 或 Jonathan Doe \bJoh?n(athan)? Doe\b
查找相似的单词 bat, cat, mat \b[bcm]at\b
查找双引号包含的字符串 (?<=\")[^\"]*(?=\")
检查密码的复杂程度(7-15 位的字母数字组合) ^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,15}$
查找一行中连续出现的重复单词,如:
It’s very very good 中的 very
\b(\w+)\s\1\b
查找多行中连续出现的重复单词 \b(\w+)(\s*$\s*|\s+)\1\b
查找以某个单词开头的行,如:Moo ^Moo\b
查找以某个单词结尾的行,如:final \bfinale$
查找 likely 但前面没有 not (?
查找 hello 但后面不接 world \bhello\b(?!\s+world\b)
查找不以 ;结尾的行 (?<=[^;])$"

二、地址和路径

实例 正则表达式
提取地址中的 scheme,如 http 或 https ^(?[a-z][-a-z\d+.]+):
提取地址中的 domain ://(?([a-z\d][-a-z\d]*[a-z\d]\.)+[a-z][-a-z\d]*[a-z])
提取地址中的端口号 :(?\d{1,})
提取地址中的查询参数 \\?(?[^<>#\"]+)
提取路径中的磁盘 ^(?[a-z]):\\?
提取共享路径中的主机名称 \\(?[^~!@#$^&()=+\[\]{}\\|;:',<>/?]+)

欢迎评论,如果你喜欢这篇文章, 请记得帮我点赞哦,谢谢!

本文为作者原创文章,未经作者允许不得转载。

你可能感兴趣的:(Python)