正则表达式介绍和python中的简单利用

打印 上一主题 下一主题

主题 1772|帖子 1772|积分 5316

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
正则表达式(Regular Expression, 简称 RegEx)

正则表达式是一种用来形貌字符串模式的工具,它答应你根据特定的规则来搜索、匹配、替换字符串。正则表达式通过一些特殊的符号和规则来形貌字符串的匹配模式,常用于文本搜索、替换、验证和提取。
Python 提供了 re 模块来支持正则表达式的利用,答应用户举行模式匹配、搜索、替换等操作。
正则表达式的基本组成部分

正则表达式包罗以下几类常见元素:
1. 元字符(Metacharacters)

元字符是正则表达式中具有特殊含义的字符,它们通常用于定义模式匹配的规则。


  • .:匹配除换行符以外的任何字符。
  • ^:匹配字符串的开始。
  • $:匹配字符串的结束。
  • *:匹配前面的元素零次或多次。
  • +:匹配前面的元素一次或多次。
  • ?:匹配前面的元素零次或一次。
  • {n}:匹配前面的元素恰好 n 次。
  • {n,}:匹配前面的元素至少 n 次。
  • {n,m}:匹配前面的元素至少 n 次,但不超过 m 次。
  • []:匹配方括号中的字符会合的任何一个字符(字符集)。
  • |:表示"或"的意思,匹配左右任意一个表达式。
  • ():用于分组匹配,提取匹配的部分。
2. 常见的字符集(Character Classes)



  • \d:匹配任何数字,等价于 [0-9]。
  • \D:匹配任何非数字字符,等价于 [^0-9]。
  • \w:匹配任何字母数字字符或下划线,等价于 [a-zA-Z0-9_]。
  • \W:匹配任何非字母数字字符,等价于 [^a-zA-Z0-9_]。
  • \s:匹配任何空白字符(包罗空格、制表符、换行符等)。
  • \S:匹配任何非空白字符。
  • \b:匹配单词边界。
  • \B:匹配非单词边界。
3. 贪婪和非贪婪匹配



  • 贪婪匹配(Greedy Match):尽可能多地匹配字符。例如,.* 会尽量匹配尽可能多的字符。
  • 非贪婪匹配(Non-Greedy Match):尽可能少地匹配字符。通过在量词后加 ? 来实现。例如,.*? 会尽量匹配少量的字符。
常见的正则表达式例子

以下是一些常见的正则表达式及其用途:
1. 匹配电话号码

假设你要匹配常见格式的电话号码,如 (123) 456-7890,你可以利用如下正则表达式:
  1. \(\d{3}\)\s\d{3}-\d{4}
复制代码


  • \( 和 \) 匹配括号字符。
  • \d{3} 匹配三个数字。
  • \s 匹配空白字符(通常是空格)。
  • - 匹配连字符。
2. 匹配邮箱地址

匹配简单的邮箱地址,如 user@example.com,可以利用:
  1. [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
复制代码


  • [a-zA-Z0-9._%+-]+ 匹配用户名部分,支持字母、数字、点、下划线、百分号等字符。
  • @ 匹配 @ 符号。
  • [a-zA-Z0-9.-]+ 匹配域名部分。
  • \. 匹配点号。
  • [a-zA-Z]{2,} 匹配域名的后缀,至少包罗两个字母。
3. 匹配网址(URL)

匹配网址(如 https://www.example.com)的正则表达式可以是:
  1. https?://(?:www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}
复制代码


  • https? 匹配 “http” 或 “https”,? 表示可选。
  • :// 匹配 “
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表