🏆🏆我知道你們肯定很奇怪,一個天天發中醫和IDE底層乾貨的‘怪蜀黎’,為啥突然講這麼基礎的正則?沒辦法,我就是這麼野!
✅✅看到兄弟姐妹們被這點基礎問題絆倒,我必須出來‘喂’一口!
正則第二篇->Python/JS/Java/Go國際正則匹配點這裏⏪⏪
“兄弟姐妹們,面試刷題時是不是又被正則表達式吊打了?
\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️⃣
兄弟姐妹們,量管夠,以下是詳細表格,幫你們整理好了👇👇👇👇
正則轉義符映射表❓
| 符號 | 單詞映射 | 含義 | 記憶技巧 | 示例 |
|---|---|---|---|---|
\d |
digit | 數字(0-9) | d = digit首字母 | \d+ → 123 |
\D |
non-digit | 非數字 | 大寫D表示取反 | \D+ → abc! |
\w |
word | 單詞字符(字母、數字、下劃線) | w = word首字母 | \w+ → user_123 |
\W |
non-word | 非單詞字符 | 大寫W表示取反 | \W+ → !@# |
\s |
space | 空白字符(空格、製表符等) | s = space首字母 | a\sb → a b |
\S |
non-space | 非空白字符 | 大寫S表示取反 | \S+ → Hello! |
\. |
dot | 匹配真正的. | 反斜槓讓.迴歸本義 | a\.b → a.b |
\* |
star | 匹配真正的* | 防止*變成"任意數量"修飾符 | a\*b → a*b |
\+ |
plus | 匹配真正的+ | 防止+變成"至少一次"修飾符 | a\+b → a+b |
\? |
question mark | 匹配真正的? | 防止?變成"可選"修飾符 | a\?b → a?b |
\\ |
backslash | 匹配真正的反斜槓\ | 雙反斜槓匹配單反斜槓 | C:\\ → C:\ |
量詞符號❗
| 符號 | 單詞映射 | 含義 | 示例 |
|---|---|---|---|
* |
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 注意調試時分組索引。 |
結尾🎉🎉:
- 這份‘正則秘籍’只是我 《賽博怪蜀黎的江湖寶典》 裏的冰山一角。我的CSDN資源庫裏還有更多從ERP到中醫,從調參到架構的‘野路子’實戰乾貨💎💎。
如有不對之處,歡迎評論區指出或者留言給我!✅✅
如果這份表幫到了你,請點贊、收藏、關注三連!你們的支持,就是我繼續‘煉丹’的動力🏆🏆!
下次面試再被問到正則,直接把這篇文章拍他臉上!(開個玩笑,還是要把知識記腦子裏哦!)💪💪
正則第二篇->Python/JS/Java/Go國際正則匹配點這裏⏪⏪