/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/
042199255·256300071000
IPv4 地址的正则表达式:正确匹配 0 到 255
IPv4 地址由四个 0 到 255 的数字组成。本文讲解为什么显而易见的 \d{1,3} 写法会放过 999.999.999.999,如何用分支匹配一个八位组,前导零该怎么处理,以及如何在文本中找出地址。
Regex Hunter/blog/ · 狩猎手记
/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/
042199255·256300071000
IPv4 地址由四个 0 到 255 的数字组成。本文讲解为什么显而易见的 \d{1,3} 写法会放过 999.999.999.999,如何用分支匹配一个八位组,前导零该怎么处理,以及如何在文本中找出地址。
Regex Hunter/^https?://\S+$/
https://a.iohttp://x.com/phttps://b.dev?q=1·ftp://x.comwww.x.comhttp:/x.com
在文本中查找链接和校验一个 URL 是两件不同的事。本文为两者各给出一个正则,讲解让坏 URL 混过去的陷阱(末尾标点、未转义的点、缺失的锚点),以及何时该把工作交给 new URL() 或 urllib。
Regex Hunter/^\d{3}[-. ]?\d{3}[-. ]?\d{4}$/
555-123-4567555.123.45675551234567·555-123455-123-4567555-123-456
同一个电话号码,人们能输入出十几种写法。本文介绍如何匹配带短横线、点、空格、括号和可选 +1 的美国号码,如何检查国际 E.164 格式,以及为什么真正的校验需要借助库。
Regex Hunter/^[^\s@]+@[^\s@]+\.[^\s@]+$/
ana@site.comx+t@site.iojo@mail.co.uk·ana@example@site.coma@@b.io
/<.+?>/
<b></i><br>·bi><>
正则表达式的量词会尽可能多地抓取文本。本文讲清贪婪匹配和懒惰匹配到底如何工作,为什么 <.+> 会吞掉一整行 HTML,以及什么时候否定字符类比两者都好用。
Regex Hunter/(.)\1/
booklettercoffee·catdoglemon
像 \1 这样的反向引用,匹配的是某个分组已经捕获的那段文本。本文讲解它的原理,如何找出双写字母、重复单词和回文,以及它唯一不起作用的地方。
Regex Hunter今日棋盘已上线
抓住每个怪物,放过每个无辜者——字符越少越好。