基础的正则表达式

正则表达式(Regular Expression,简称正则或RegExp)是用于匹配字符串中字符组合的表达式。它是一种强大的工具,可以用于搜索、替换和提取字符串中的文本。

正则表达式由字符和操作符构成,用于描述字符串模式。以下是一些基本的正则表达式元素:

|----------|---------------|--------------------------------------------------------------|
| 字符类 | abc | 匹配字符串中的任意一个字符是 "a"、"b" 或 "c"。 |
| 字符类 | abc | 示例:正则表达式 /[abc]/ 匹配字符串 "hello" 中的字符 "e",因为它是字符类中的一个字符。 |
| 字符类 | \^abc | 匹配字符串中的任意一个字符不是 "a"、"b" 或 "c"。 |
| 字符类 | \^abc | 示例:正则表达式 /[^abc]/ 匹配字符串 "hello" 中的字符 "h",因为它不在字符类中。 |
| 元字符 | . | 匹配除换行符之外的任意一个字符。 |
| 元字符 | . | 示例:正则表达式 /he./ 匹配字符串 "hello" 中的字符 "hel"。 |
| 元字符 | ^ | 匹配字符串的开始。 |
| 元字符 | ^ | 示例:正则表达式 /^he/ 匹配字符串 "hello",因为它在字符串的开头。 |
| 元字符 | ** | 匹配字符串的结束。 | | **元字符** | ** | 示例:正则表达式 /lo$/ 匹配字符串 "hello",因为它在字符串的末尾。 |
| 量词 | * | 匹配前面的元素零次或多次。 |
| 量词 | * | 示例:正则表达式 /ba*/ 匹配字符串 "ba", "baa", "baaa" 等。 |
| 量词 | + | 匹配前面的元素一次或多次。 |
| 量词 | + | 示例:正则表达式 /ba+/ 匹配字符串 "ba", "baa", 但不匹配 "b"。 |
| 量词 | ? | 匹配前面的元素零次或一次。 |
| 量词 | ? | 示例:正则表达式 /ba?/ 匹配字符串 "b" 和 "ba"。 |
| 量词 | {n} | 匹配前面的元素恰好 n 次。 |
| 量词 | {n} | 示例:正则表达式 /ba{2}/ 匹配字符串 "baa"。 |
| 量词 | {n,} | 匹配前面的元素至少 n 次。 |
| 量词 | {n,} | 示例:正则表达式 /ba{2,}/ 匹配字符串 "baa", "baaa" 等。 |
| 量词 | {n,m} | 匹配前面的元素至少 n 次但不超过 m 次。 |
| 量词 | {n,m} | 示例:正则表达式 /ba{2,4}/ 匹配字符串 "baa", "baaa", "baaaa"。 |
| 特殊字符 | \ | 转义字符,用于匹配特殊字符。 |
| 特殊字符 | \ | 示例:正则表达式 /\d/ 匹配字符串 "123", 不匹配 "abc"。 |
| 特殊字符 | | | 或操作符,匹配两者之一。 |
| 特殊字符 | | | 示例:正则表达式 /cat|dog/ 匹配字符串 "cat" 或 "dog"。 |

常用正则表达式涵盖了一系列常见的文本匹配需求。以下是一些常用的正则表达式示例:

  1. 匹配数字:

    • 匹配整数:/^\d+$/
    • 匹配浮点数:/^\d+(\.\d+)?$/
    • 匹配正整数:/^[1-9]\d*$/
    • 匹配非负整数:/^\d+$/
  2. 匹配字母和数字:

    • 匹配由数字和字母组成的字符串:/^[a-zA-Z0-9]+$/
  3. 匹配邮箱地址:

    • /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
  4. 匹配手机号码:

    • /^1[3456789]\d{9}$/
  5. 匹配日期:

    • 匹配 yyyy-mm-dd 格式的日期:/^\d{4}-\d{2}-\d{2}$/
    • 匹配 yyyy/mm/dd 格式的日期:/^\d{4}\/\d{2}\/\d{2}$/
  6. 匹配 URL:

    • /^(http|https):\/\/\w+(\.\w+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?$/
  7. 匹配 IP 地址:

    • /^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/
  8. 匹配中文字符:

    • /[\u4e00-\u9fa5]/
  9. 匹配 HTML 标签:

    • /<\/?[^>]+(>|$)/
  10. 匹配用户名:

    • /^[a-zA-Z0-9_-]{3,16}$/

参考资料:

正则表达式 -- 语法 | 菜鸟教程
正则表达式手册

相关推荐
子兮曰5 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰5 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万5 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝5 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋5 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁5 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95275 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大5 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师5 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学5 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端