跳转到主内容
极星编程网:以代码为星,赴技术山海!

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

正则表达式中的问号(?)的用途正则表达式中,问号(?)表示它前面的字符可有可无,即匹配长度为 1 到 2 的子字符串。在验证手机号的正则表达式中,前面添加 "0?" 的目的在于匹配以下两种情况:

带区号的手机号:

以 "0" 开头,后跟 11 位数字。

不带区号的手机号:

直接以 "1" 开头,后跟 11 位数字。

因此,如果使用正则表达式 "^13|4|5|8d{8}$",则只能匹配不带区号的手机号,而无法匹配带区号的手机号,造成验证不准确。

另外,请注意正则表达式中表示特定字符组的 "[3|4|5|8]" 可以用更简洁的表示方式 "[3-8]" 替换。

相关文章