在Java中使用正则表达式进行字符串匹配

我想匹配这样的电话号码,它应该有3位数字(000,666除外)以及900-999之间的任何数字,然后是-然后是2位数字,然后是-

然后是4位数字。例如:123-75-3456是数学000-

23-3452不是匹配项(否000)915-23-4534不是匹配项(大于900)有人可以帮忙吗?抱歉,忘记添加我尝试的内容,[0-9 && ^

[000,666,[900-999]] {3}-[0-9] {2}-[0-9] {4}

回答:

我认为这应该可以解决问题:

^(?!000|666|9\d{2})\d{3}-\d{2}-\d{4}$

编辑2:这是一些想要测试的代码片段:

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Main {

public static void main(String[] args) {

Pattern pattern = Pattern.compile("^(?!000|666|9\\d{2})\\d{3}-\\d{2}-\\d{4}$");

Scanner sc = new Scanner(System.in);

while (true) {

System.out.println("Next number :");

Matcher matcher = pattern.matcher(sc.nextLine());

if (matcher.find()) {

System.out.println("Matches");

} else {

System.out.println("Doesn't match");

}

}

}

}

以上是 在Java中使用正则表达式进行字符串匹配 的全部内容, 来源链接: utcz.com/qa/414474.html

回到顶部