首页 > 文章列表 > 正则表达式中的问号(?)有什么作用?

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

246 2025-01-02

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

正则表达式中的问号(?)的用途

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

  • 带区号的手机号:以 "0" 开头,后跟 11 位数字。
  • 不带区号的手机号:直接以 "1" 开头,后跟 11 位数字。

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

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

来源:1730671760