用正则表达式判断手机号码是否为11位数字
时间: 2024-06-09 21:06:20 浏览: 170
可以使用以下正则表达式来判断手机号是否为11位数字:
```python
import re
phone_number = "12345678901" # 假设这是要判断的手机号
pattern = r'^\d{11}$'
if re.match(pattern, phone_number):
print("手机号格式正确")
else:
print("手机号格式错误")
```
解释一下上面的正则表达式:
- `^` 表示匹配字符串开头
- `\d` 表示匹配任意数字
- `{11}` 表示匹配前面的表达式11次
- `$` 表示匹配字符串结尾
因此,`^\d{11}$` 表示匹配一个11位数字的字符串。如果要判断其他位数的手机号码,只需要将 `{11}` 改成相应的数字即可。
相关问题
如何用正则表达式判断手机号码是否正确
可以使用正则表达式来判断手机号码是否正确,例如使用以下正则表达式匹配:
^(13[0-9]|14[5-9]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[89])\d{8}$
其中,以括号分隔的是手机号码的开头数字范围,后面的 \d{8} 则用来匹配后面 8 个数字(手机号码总共 11 个数字)。
java用正则表达式判断手机号码
以下是Java代码示例,用于检查手机号码是否符合规则:
```
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneNumberValidator {
private static final String PHONE_NUMBER_PATTERN = "^1[3-9]\\d{9}$";
private static final Pattern pattern = Pattern.compile(PHONE_NUMBER_PATTERN);
public static boolean validate(String phoneNumber) {
Matcher matcher = pattern.matcher(phoneNumber);
return matcher.matches();
}
public static void main(String[] args) {
String phoneNumber = "13456789012"; // 有效的手机号码
boolean isValid = validate(phoneNumber);
System.out.println("手机号码是否有效:" + isValid);
phoneNumber = "12345678901"; // 无效的手机号码
isValid = validate(phoneNumber);
System.out.println("手机号码是否有效:" + isValid);
}
}
```
输出:
```
手机号码是否有效:true
手机号码是否有效:false
```
该示例使用正则表达式 `^1[3-9]\\d{9}$` 来验证手机号码。该正则表达式的意思是:以数字 1 开头,后面跟着数字 3-9 中的任意一个数字,然后是任意 9 个数字(总共 11 位数字)。
阅读全文