正则表达式详解

一、正则表达式概述

正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。通俗的讲就是按照某种规则去匹配符合条件的字符串
一个正则表达式是一种从左到右匹配主体字符串的模式。 "Regular expression"这个词比较拗口,我们常使用缩写的术语"regex"或"regexp"。 正则表达式可以从一个基础字符串中根据一定的匹配模式替换文本中的字符串、验证表单、提取字符串等等

二、基础语法表格

|-------------------------------|---------------------|-------------------------|
| single char(单字符) | quantifiers(数量) | position(位置) |
| \d 匹配数字 | * 0个或者更多 | ^一行的开头 |
| \w 匹配word(数字、字母) | + 1个或更多,至少1个 | $一行的结尾 |
| \W 匹配非word(数字、字母) | ? 0个或1个,一个Optional | \b 单词"结界"(word bounds) |
| \s 匹配white space(包括空格、tab等) | {min,max}出现次数在一个范围内 | |
| \S 匹配非white space(包括空格、tab等) | {n}匹配出现n次的 | |
| . 匹配任何,任何的字符 | | |

三、元字符

正则表达式主要依赖于元字符。元字符不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思。

|---------|------------------------------------------------|
| 元字符 | 描述 |
| . | 句号匹配任意单个字符除了换行符。 |
| [ ] | 字符种类。匹配方括号内的任意字符。 |
| [^ ] | 否定的字符种类。匹配除了方括号里的任意字符 |
| * | 匹配>=0个重复的在*号之前的字符。 |
| + | 匹配>=1个重复的+号前的字符。 |
| ? | 标记?之前的字符为可选. |
| {n,m} | 匹配num个大括号之前的字符或字符集 (n <= num <= m). |
| (xyz) | 字符集,匹配与 xyz 完全相等的字符串. |
| | | 或运算符,匹配符号前或后的字符. |
| \ | 转义字符,用于匹配一些保留的字符 `[ ] ( ) { } . * + ? ^ $ |
| ^ | 从开始行开始匹配. |
| $ | 从末端开始匹配. |

相关推荐
疯狂吧小飞牛21 小时前
正则表达式特殊字符
正则表达式
White graces21 小时前
正则表达式效验邮箱格式, 手机号格式, 密码长度
前端·spring boot·spring·正则表达式·java-ee·maven·intellij-idea
astragin21 小时前
正则表达式常用记录
正则表达式
不会玩技术的技术girl1 天前
使用Python和正则表达式爬取网页中的URL数据
开发语言·python·正则表达式
疯狂吧小飞牛1 天前
正则表达式–断言
正则表达式
yuanbenshidiaos1 天前
【正则表达式】
数据库·mysql·正则表达式
奔跑吧邓邓子2 天前
【Python爬虫(12)】正则表达式:Python爬虫的进阶利刃
爬虫·python·正则表达式·进阶·高级
阿华的代码王国2 天前
【从0做项目】Java搜索引擎(6)& 正则表达式鲨疯了&优化正文解析
java·后端·搜索引擎·正则表达式·java项目·从0到1做项目
程序员小王꧔ꦿ3 天前
BeautifulSoup、lxml/XPath和正则表达式在数据爬取中的核心差异及适用场景
正则表达式·beautifulsoup
程序员小王꧔ꦿ3 天前
BeautifulSoup、lxml/XPath和正则表达式在数据爬取中的适用场景
正则表达式·beautifulsoup