PHP前端开发

正则表达式中问号(?)的作用是什么?

百变鹏仔 2天前 #PHP
文章标签 问号

正则匹配问号的重要性

文章开头介绍问题:

在正则表达式中,某些符号可以用来匹配可选字符。例如,问号 (?) 表示该字符出现零次或一次。在匹配手机号的正则表达式 /^0?1[3|4|5|8][0-9]d{8}$/ 中,为什么前面要加上 0??

答案分析:

以前,拨打长途手机号码需要在前面加一个 0。因此,该正则表达式考虑到这种情况,通过使用 0? 来匹配可选的 0 字符。

如果我们不使用 0?,而是使用 /^1[3|4|5|8][0-9]d{8}$/,那么正则表达式将要求手机号必须以 1 开头,而不会匹配带有 0 的合法手机号。

换句话说,0? 使得该正则表达式能够匹配所有有效的手机号,无论它们是否包含 0。