Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于验证特定序列中电话号码的正则表达式_Regex - Fatal编程技术网

Regex 用于验证特定序列中电话号码的正则表达式

Regex 用于验证特定序列中电话号码的正则表达式,regex,Regex,嗨,我正在尝试验证代码中的电话号码。验证结果是,如果该数字在以下任意序列中,则该数字无效- 111-111-1111 333-333-3333 444-444-4444 123-123-1234 123-456-7890 这个序列中的任何数字xxx xxx xxxx xxx xxxx除了上面的数字都是有效的,不应该在验证中被捕获我已经用这个正则表达式来验证前三个序列 ^([0-9])\1{2}\1{3}\1{4}$ 任何潜在客户都会大有裨益。一个简单的解决方案是维护一个受限系列/号码列表,然

嗨,我正在尝试验证代码中的电话号码。验证结果是,如果该数字在以下任意序列中,则该数字无效-

111-111-1111
333-333-3333
444-444-4444
123-123-1234
123-456-7890
这个序列中的任何数字xxx xxx xxxx xxx xxxx除了上面的数字都是有效的,不应该在验证中被捕获我已经用这个正则表达式来验证前三个序列

^([0-9])\1{2}\1{3}\1{4}$

任何潜在客户都会大有裨益。

一个简单的解决方案是维护一个受限系列/号码列表,然后检查一个电话号码是否属于该列表

按如下方式操作:

import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> restrictedList = List.of("111-111-1111", "333-333-3333", "444-444-4444", "123-123-1234",
                "123-456-7890");
        String[] testNumbers = { "444-444-4544", "444-444-4444", "121-111-1111", "333-343-3333", "123-123-1234",
                "123-456-7890", "123-465-7890", "213-123-1234", "1234567890", "111-111-1111", "a1b2c3d4e5",
                "333-333-3333", "223-334-4445", "2134-12-4321", "100-200-3000", "011-243-7234" };
        for (String number : testNumbers) {
            if (number.matches("[1-9]{1}[0-9]{2}-[0-9]{3}-[0-9]{4}") && !restrictedList.contains(number)) {
                System.out.println(number + " is valid.");
            } else {
                System.out.println(number + " is invalid.");
            }
        }
    }
}

注意:我使用了[1-9]{1}[0-9]{2}-[0-9]{3}-[0-9]{4}作为电话号码的格式,假设第一个数字不能是0。

您可能希望在最后2个数字中使用Integer.parse和其他内容-regex不适合sequencesmindSet之类的内容-有更新吗?
444-444-4544 is valid.
444-444-4444 is invalid.
121-111-1111 is valid.
333-343-3333 is valid.
123-123-1234 is invalid.
123-456-7890 is invalid.
123-465-7890 is valid.
213-123-1234 is valid.
1234567890 is invalid.
111-111-1111 is invalid.
a1b2c3d4e5 is invalid.
333-333-3333 is invalid.
223-334-4445 is valid.
2134-12-4321 is invalid.
100-200-3000 is valid.
011-243-7234 is invalid.