首页 / 体育 / 意甲 / 正文

正则表达式不为空(正则-表达式-别再死记硬背了: 面试必备!(附记忆口诀->映射表))

放大字体  缩小字体 来源:苍天小说 2026-04-17 17:24  浏览次数:11

我知道你们肯定很奇怪,一个天天发中医和IDE底层干货的‘怪蜀黎’,为啥突然讲这么基础的正则?没办法,我就是这么野!

✅✅看到兄弟姐妹们被这点基础问题绊倒,我必须出来‘喂’一口!

“兄弟姐妹们,面试刷题时是不是又被正则表达式吊打了?\d \w \s 还分不清?贪婪模式 和 非贪婪模式 听得云里雾里?

别怕!你们正则路上的‘救世主’——赛博怪蜀黎来了!

我翻遍了网上所谓的‘面经’,发现都是些零散碎片,根本不成体系!还不如我亲自下场,用我17年摸爬滚打练就的‘知识炼丹术’,把正则的高频考点给你们熔了、炼了、搓成一颗十全大补丸✅✅!

这张表,就是你们的 ‘正则速通秘籍’!面试前瞄一眼,直接自信拉满!告别死记硬背,咱们要玩就玩‘理解性记忆’!”

在 \d (digit) 旁补充:”d就是‘嘚儿’一下敲出来的数字!1️⃣”

在 \w (word) 旁补充:”w就是‘我’的拼音首字母!‘我’是一个有身份(字母、数字、下划线)

的‘单词’!” (办公Word联想也行)2️⃣

在 \s (space) 旁补充:”s就是‘空’(Space)!整天敲空格键,还能忘了它?”3️⃣

在 ^ 和 $ 旁补充:”^(帽子)戴在头(开头),$(美元)垫在脚(结尾)!”4️⃣

在 | (或) 旁补充:”这根‘水管’(|)通两头,左边也行,右边也行!”5️⃣

在 \b (边界) 旁补充:”\b就是‘不’要越界!单词的边界由我守护!”6️⃣

在 (?:) 非捕获分组旁补充:”干活的临时工,干完活不记录名字(不捕获),深藏功与名!”7️⃣

在“贪婪/非贪婪”部分强调:”记住一个宇宙真理:正则默认都是‘贪心鬼’(贪婪),想让它‘克制’

(非贪婪),就在它后面打个‘问号’(?)问问它‘你够了没?’!”8️⃣

兄弟姐妹们,量管够,以下是详细表格,帮你们整理好了

正则转义符映射表❓

富文本编辑器表格列数限制为4列,第5列开始手机预览越界

量词符号❗

符号

单词映射

含义

示例

*

any amount

任意数量(0次或多次)

ab*c → ac, abc, abbc…

+

some amount

至少一次(1次或多次)

ab+c → abc, abbc…

?

maybe

0次或1次

colou?r → color, colour

{n}

exact n amount

精确n次

a{3} → aaa

{n,}

at least n amount

至少n次

a{2,} → aa, aaa…

{n,m}

between n and m

n到m次

a{2,4} → aa, aaa, aaaa

特殊符号⭕

符号

单词映射

含义

示例

[]

any of these

字符组(匹配其中任意一个)

[aeiou] → 任意元音

[^ ]

not these

否定字符组

[^0-9] → 非数字

^

hat(开头锚点)

匹配行首

^abc → "abc"开头

$

dollar(结尾锚点)

匹配行尾

abc$ → "abc"结尾

|

or

或逻辑

cat|dog → cat或dog

\b

boundary

单词边界

\bword\b → 独立单词

(?i)

case-insensitive

忽略大小写

(?i)hello → 匹配Hello

(?:...)

non-capturing group

分组但不捕获

(?:ab)+ → 匹配abab

分组功能

功能

语法

示例

记忆技巧

分组捕获

(...)

(\d{4})-(\d{2})

“拍照存档”

分组不捕获

(?:...)

(?:\d+)

“透明盒子”

量词作用范围

(...)

(ab)+

“围栏捆字符”

或逻辑

(a|b)

(cat|dog)

“三叉路口”

反向引用

\1, \2...

(\w)\1+

“时光机复用”

记忆口诀✅

  • 在[]里是"反派"(取反),在正则前是"锚点"(定位开头)!
  • 正则三问:“它长得像什么?”(如^像帽子)“英文单词是什么?”(如\d→digit)“逻辑含义是什么?”(如?→maybe可选)❓

贪婪/非贪婪是 量词的行为模式(依赖量词本身的扩展用法)。但它确实是正则开发中的高频考点(尤其是处理文本截取、HTML标签匹配等场景)概念要搞清楚,非常重要

补充:贪婪与非贪婪匹配(跨语言兼容性总结)

核心概念✅

  • 1.贪婪模式(默认):量词(如 *、+、?、{n,m})会尽可能多地匹配字符(“贪心”)。
  • 2.示例:a.*b匹配 aabab时,会匹配整个字符串 aabab(从第一个 a到最后一个 b)。
  • 3.非贪婪模式(懒惰模式):在量词后加 ?(如 *?、+?、??、{n,m}?),让量词尽可能少地匹配字符(“克制”)。

示例:a.*?b匹配 aabab时,会匹配第一个 a到第一个 b(即 aab)。

1.贪婪默认,非贪婪显式声明:

所有语言中,量词(*、+、?、{n,m})默认是贪婪的(尽可能多匹配)。

只需在量词后加 ?即可切换为非贪婪(如 .*?、+?、{2,5}?)。

2.示例对比(跨语言一致):

贪婪模式:正则 a.b匹配字符串 aabab→ 结果为 aabab(匹配到最后一个 b).

非贪婪模式:正则 a.*?b匹配字符串
aabab→ 结果为 aab(匹配到第一个 b)。

3.语言实现无差异:

Python (re模块)、Javascript (RegExp)、Go (regexp包)、Java (java.util.regex) 均通过 量词后加 ? 实现非贪婪,语法和逻辑完全一致。

✅ Python/Nodejs/Go/Java 跨语言兼容性整理细节注意事项:

场景

是否通用

注意事项

核心转义符(\d/\w/\s等)

✅ 完全通用

直接复用,无需调整(如 \d+匹配数字串)。

量词(*/+/?/{n}等)

✅ 完全通用

语法一致(如 a{3}匹配 3 个 a);贪婪模式默认生效(如 a.* 会尽可能多匹配)。

贪婪与非贪婪

✅ 逻辑通用

通过在量词后加 ? 实现非贪婪(如 *?+???{n,m}?);四大语言均支持。

特殊符号(^/$/|/\b等)

✅ 逻辑通用

注意字符串转义规则(如 |需写成 \|),锚点功能一致。

忽略大小写((?i))

⚠️ 语法微调

Javascript 用 /pattern/i更简洁,其他语言支持内联或标志。

字符串转义(反斜杠 ``)

⚠️ 写法差异

Python/Java/Go 需双反斜杠(“\d”),Javascript 字面量可直接写 \d。

分组捕获/反向引用((…)/\1)

✅ 完全通用

功能一致,Go/Java 注意调试时分组索引。

如有不对之处,欢迎评论区指出或者留言给我!✅✅

如果这份表帮到了你,请点赞、收藏、关注三连!你们的支持,就是我继续‘炼丹’的动力!

下次面试再被问到正则,直接把这篇文章甩HR脸上!(开个玩笑,还是要把知识记脑子里哦!)

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心