上一篇
场景再现:
程序员小张正在写一个爬虫,需要匹配网页中的价格($19.99
),他随手写下 /\$d+\.d{2}/
,结果程序疯狂报错,同事老王瞥了一眼:"老弟,你的美元符号和点号得转义啊!" —— 这就是我们今天要聊的正则表达式特殊字符转义问题。
正则表达式中有一些字符具有特殊含义, 表示"任意字符", 表示"零次或一次",如果你真想匹配这些字符本身(比如匹配真实的问号),就需要用反斜杠\
来转义它们。
字符 | 正则中的含义 | 如何转义 | 示例 |
---|---|---|---|
\ |
转义符本身 | \\ |
匹配\ → \\\\ |
^ |
匹配行首 | \^ |
匹配^ → \^ |
匹配行尾 | \$ |
匹配 → \$ |
|
匹配任意字符 | \. |
匹配 → \. |
|
逻辑"或" | \| |
匹配 → \| |
|
零次或一次 | \? |
匹配 → \? |
|
零次或多次 | \* |
匹配 → \* |
|
一次或多次 | \+ |
匹配 → \+ |
|
分组开始 | \( |
匹配 → \( |
|
分组结束 | \) |
匹配 → \) |
|
[ |
字符集合开始 | \[ |
匹配[ → \[ |
] |
字符集合结束 | \] |
匹配] → \] |
匹配网址中的点:
https?://example\.com
(如果不转义 ,会匹配成 example任意字符com
😱)
搜索数学公式中的1+1
:
1\+1
(否则 会被当作量词)
查找所有[重要]:
\[重要\]
(方括号在正则里是字符集合标记)
字符集合内:在 []
内,多数字符无需转义(但 ^
、、]
、\
仍需转义)
匹配加减号 → [+-]
编程语言中的双重转义:在代码字符串里,反斜杠本身需要转义:
# Python中匹配\d需要写成: re.compile('\\d')
"正则十二钗,见
\
要逃开:
^$.*+?|()[]
,反斜杠护盾开!"
(用\
像给特殊字符穿防弹衣🦸)
根据2025年8月的最新实践,现代正则引擎(如PCRE2)对未转义的特殊字符会抛出更明确的错误提示,但养成转义习惯依然是专业度的体现!下次看到正则报错时,先检查是不是这些"调皮鬼"在搞事情吧~ 🕵️♂️
本文由 拜升荣 于2025-08-02发表在【云服务器提供商】,文中图片由(拜升荣)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/519856.html
发表评论