Skip to content

Latest commit

 

History

History
265 lines (189 loc) · 9.66 KB

POSIX-CN.md

File metadata and controls

265 lines (189 loc) · 9.66 KB

POSIX 标准正则表达式

目前正则表达式主要有 PCREPOSIX 两大标准,POSIX 又分为 BRE(grep、sed 等)、GNU BRE(GNU grep、GNU sed 等)、ERE(egrep、awk 等)、GNU ERE(grep –E、GNU awk 等)以及已经被废弃的 SRE 几种流派,彼此之间的语法都有差异。

由于 PCRE 标准被各种常用编程语言广泛支持,所以本项目中的正则表达式都是 PCRE 的。而 POSIX 标准目前主要被各种 Unix-like 系统内置命令所支持,例如常用的 Linux 系统中的 awksed 等命令。

由于 Unix-like 系统众多,历史悠久,同一个命令有众多种实现版本(例如 awk 就有 awkgawkmawknawk 等众多实现),并且同一个系统中不同的命令还可能存在使用不同流派的情况,很难做到兼容所有流派和命令,故本文档所列出的正则表达式仅兼容以下两种流派:

  • GNU BRE(gsed - GNU sed)
  • GNU ERE(gawk - GNU awk,ggrep - GNU grep)

如需了解更多,可以阅读维基百科 - Regular expression

正则表达式

匹配所有号码(手机卡 + 数据卡 + 上网卡)

命令 正则表达式
GNU ERE ^(+?86)?1(3[0-9]{3}|5[01235-9][0-9]{2}|8[0-9]{3}|7([0-35-9][0-9]{2}|4(0[0-9]|1[0-2]|9[0-9]))|9[0-35-9][0-9]{2}|6[2567][0-9]{2}|4((10|4[01])[0-9]{3}|[68][0-9]{4}|[579][0-9]{2}))[0-9]{6}$
GNU BRE ^\(+\?86\)\?1\(3[0-9]\{3\}\|5[01235-9][0-9]\{2\}\|8[0-9]\{3\}\|7\([0-35-9][0-9]\{2\}\|4\(0[0-9]\|1[0-2]\|9[0-9]\)\)\|9[0-35-9][0-9]\{2\}\|6[2567][0-9]\{2\}\|4\(\(10\|4[01]\)[0-9]\{3\}\|[68][0-9]\{4\}\|[579][0-9]\{2\}\)\)[0-9]\{6\}$

匹配所有支持短信功能的号码(手机卡 + 上网卡)

命令 正则表达式
GNU ERE ^(+?86)?1(3[0-9]{3}|5[01235-9][0-9]{2}|8[0-9]{3}|7([0-35-9][0-9]{2}|4(0[0-9]|1[0-2]|9[0-9]))|9[0-35-9][0-9]{2}|6[2567][0-9]{2}|4[579][0-9]{2})[0-9]{6}$
GNU BRE ^\(+\?86\)\?1\(3[0-9]\{3\}\|5[01235-9][0-9]\{2\}\|8[0-9]\{3\}\|7\([0-35-9][0-9]\{2\}\|4\(0[0-9]\|1[0-2]\|9[0-9]\)\)\|9[0-35-9][0-9]\{2\}\|6[2567][0-9]\{2\}\|4[579][0-9]\{2\}\)[0-9]\{6\}$

手机卡

匹配所有

命令 正则表达式
GNU ERE ^(+?86)?1(3[0-9]{3}|5[01235-9][0-9]{2}|8[0-9]{3}|7([235-8][0-9]{2}|4(0[0-9]|1[0-2]|9[0-9]))|9[0-35-9][0-9]{2}|66[0-9]{2})[0-9]{6}$
GNU BRE ^\(+\?86\)\?1\(3[0-9]\{3\}\|5[01235-9][0-9]\{2\}\|8[0-9]\{3\}\|7\([235-8][0-9]\{2\}\|4\(0[0-9]\|1[0-2]\|9[0-9]\)\)\|9[0-35-9][0-9]\{2\}\|66[0-9]\{2\}\)[0-9]\{6\}$

匹配中国移动

命令 正则表达式
GNU ERE ^(+?86)?1(3(4[0-8]|[5-9][0-9])|5[012789][0-9]|7[28][0-9]|8[23478][0-9]|9[578][0-9])[0-9]{7}$
GNU BRE ^\(+\?86\)\?1\(3\(4[0-8]\|[5-9][0-9]\)\|5[012789][0-9]\|7[28][0-9]\|8[23478][0-9]\|9[578][0-9]\)[0-9]\{7\}$

匹配中国联通

命令 正则表达式
GNU ERE ^(+?86)?1(3[0-2]|[578][56]|66|96)[0-9]{8}$
GNU BRE ^\(+\?86\)\?1\(3[0-2]\|[578][56]\|66\|96\)[0-9]\{8\}$

匹配中国电信

命令 正则表达式
GNU ERE ^(+?86)?1(3(3[0-9]|49)[0-9]|53[0-9]{2}|8[019][0-9]{2}|7([37][0-9]{2}|40[0-5])|9[0139][0-9]{2})[0-9]{6}$
GNU BRE ^\(+\?86\)\?1\(3\(3[0-9]\|49\)[0-9]\|53[0-9]\{2\}\|8[019][0-9]\{2\}\|7\([37][0-9]\{2\}\|40[0-5]\)\|9[0139][0-9]\{2\}\)[0-9]\{6\}$

匹配中国广电

命令 正则表达式
GNU ERE ^(+?86)?192[0-9]{8}$
GNU BRE ^\(+\?86\)\?192[0-9]\{8\}$

匹配北京船舶通信导航有限公司(海事卫星通信)

命令 正则表达式
GNU ERE ^(+?86)?1749[0-9]{7}$
GNU BRE ^\(+\?86\)\?1749[0-9]\{7\}$

工业和信息化部应急通信保障中心(应急通信)

命令 正则表达式
GNU ERE ^(+?86)?174(0[6-9]|1[0-2])[0-9]{6}$
GNU BRE ^\(+\?86\)\?174\(0[6-9]\|1[0-2]\)[0-9]\{6\}$

虚拟运营商

匹配所有

命令 正则表达式
GNU ERE ^(+?86)?1(7[01]|6[257])[0-9]{8}$
GNU BRE ^\(+\?86\)\?1\(7[01]\|6[257]\)[0-9]\{8\}$

匹配中国移动

命令 正则表达式
GNU ERE ^(+?86)?1(65[0-9]|70[356])[0-9]{7}$
GNU BRE ^\(+\?86\)\?1\(65[0-9]\|70[356]\)[0-9]\{7\}$

匹配中国联通

命令 正则表达式
GNU ERE ^(+?86)?1(70[4789]|71[0-9]|67[0-9])[0-9]{7}$
GNU BRE ^\(+\?86\)\?1\(70[4789]\|71[0-9]\|67[0-9]\)[0-9]\{7\}$

匹配中国电信

命令 正则表达式
GNU ERE ^(+?86)?1(70[012]|62[0-9])[0-9]{7}$
GNU BRE ^\(+\?86\)\?1\(70[012]\|62[0-9]\)[0-9]\{7\}$

物联网数据卡

匹配所有

命令 正则表达式
GNU ERE ^(+?86)?14([14]0|41|[68][0-9])[0-9]{9}$
GNU BRE ^\(+\?86\)\?14\([14]0\|41\|[68][0-9]\)[0-9]\{9\}$

匹配中国移动

命令 正则表达式
GNU ERE ^(+?86)?14(4[01]|8[0-9])[0-9]{9}$
GNU BRE ^\(+\?86\)\?14\(4[01]\|8[0-9]\)[0-9]\{9\}$

匹配中国联通

命令 正则表达式
GNU ERE ^(+?86)?146[0-9]{10}$
GNU BRE ^\(+\?86\)\?146[0-9]\{10\}$

匹配中国电信

命令 正则表达式
GNU ERE ^(+?86)?1410[0-9]{9}$
GNU BRE ^\(+\?86\)\?1410[0-9]\{9\}$

上网卡

匹配所有

命令 正则表达式
GNU ERE ^(+?86)?14[579][0-9]{8}$
GNU BRE ^\(+\?86\)\?14[579][0-9]\{8\}$

匹配中国移动

命令 正则表达式
GNU ERE ^(+?86)?147[0-9]{8}$
GNU BRE ^\(+\?86\)\?147[0-9]\{8\}$

匹配中国联通

命令 正则表达式
GNU ERE ^(+?86)?145[0-9]{8}$
GNU BRE ^\(+\?86\)\?145[0-9]\{8\}$

匹配中国电信

命令 正则表达式
GNU ERE ^(+?86)?149[0-9]{8}$
GNU BRE ^\(+\?86\)\?149[0-9]\{8\}$