0
点赞
收藏
分享

微信扫一扫

java正则表达式

在了解正则表达式之前,我们先看几个非常常见的问题:

  • 如何判断字符串是否是有效的电话号码?例如:010-1234567123ABC45613510001000等;
  • 如何判断字符串是否是有效的电子邮件地址?例如:test@example.comtest#example等;
  • 如何判断字符串是否是有效的时间?例如:12:3409:6099:99等。

一种直观的想法是通过程序判断,这种方法需要为每种用例创建规则,然后用代码实现。下面是判断手机号的代码:

boolean isValidMobileNumber(String s) {
// 是否是11位?
if (s.length() != 11) {
return false;
}
// 每一位都是0~9:
for (int i=0; i<s.length(); i++) {
char c = s.charAt(i);
if (c < '0' || c > '9') {
return false;
}
}
return true;
}

上述代码仅仅做了非常粗略的判断,并未考虑首位数字不能为​​0​​等更详细的情况。

除了判断手机号,我们还需要判断电子邮件地址、电话、邮编等等:

  • boolean isValidMobileNumber(String s) { ... }
  • boolean isValidEmail(String s) { ... }
  • boolean isValidPhoneNumber(String s) { ... }
  • boolean isValidZipCode(String s) { ... }
  • ...

为每一种判断逻辑编写代码实在是太繁琐了。有没有更简单的方法?

有!用正则表达式!

正则表达式可以用字符串来描述规则,并用来匹配字符串。例如,判断手机号,我们用正则表达式​​\d{11}​​:

boolean isValidMobileNumber(String s) {
return s.matches("\\d{11}");
}

举报

相关推荐

0 条评论