常用符号
{} // 代表次数
[] // 字符集里面的一个
| // 代表或
i //忽略大小写 g:全局匹配 两个一起写,写成 ig 或 gi 就代表 既忽略大小写,也全局匹配
工具
学习网站
上面的mdn
w3cschool
参考例子
例子二 页面下方电话号码
例子三 分析例子
例子四 里面的两个回答
符号表MDN &学习
例子1 例子来源
知道几个通常用的就能大致了解,再记录几个文章:
编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。
为了避免那么多烦人的重复,我们也可以这样写这个表达式:0\d{2}-\d{8}
。这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)。
下面是一个更复杂的表达式:\(?0\d{2}[) -]?\d{8}
这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进行一些分析吧:首先是一个转义字符\(
,它能出现0次或1次(?
),然后是一个0,后面跟着2个数字(\d{2}
),然后是)或-或空格中的一个,它出现1次或不出现(?
),最后是8个数字(\d{8}
)。
0\d{2}-\d{8}|0\d{3}-\d{7}
这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。
\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}
这个表达式匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔。你可以试试用分枝条件把这个表达式扩展成也支持4位区号的。