Регулярное выражение в java о номере (например, номер телефона, начинающийся с 021, а затем два повторных номера)? - PullRequest
2 голосов
/ 22 сентября 2019

Регулярное выражение в java о числе (например, номер телефона, начинающийся с 021, а затем два повторных номера) для полностью одиннадцати цифр, например:

 02177890488
 or
 02177098765 
 or 
 02199123450

Пожалуйста, помогите мне,

я пробовал это:

^[0][2][1][1-9]\\1[0-9]{6}$

, но не работает: (

Ответы [ 2 ]

2 голосов
/ 22 сентября 2019

Вы были достаточно близко, вам просто нужно захватить цифру, которую вы хотите отследить, и снова сопоставить, этот шаблон будет работать:

^021([1-9])\\1\\d{6}$

Обратите внимание, что [0][2][1] точнотак же, как 021, а также то, что диапазон символов [0-9] может быть упрощен до \d.

0 голосов
/ 22 сентября 2019

Я предполагаю, что, возможно,

^021([0-9])\\1[0-9]{6}$

или

^021(\\d)\\1\\d{6}$

будет в порядке для начала, а Java использует двойное экранирование.

Демо

Тест

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class RegularExpression{

    public static void main(String[] args){

        final String regex = "^021(\\d)\\1\\d{6}$";
        final String string = "02177890488\n"
             + "02177098765\n"
             + "02199123450\n"
             + "02100890488\n"
             + "02111098765\n"
             + "02122123450\n"
             + "02133123450\n"
             + "02144123450\n"
             + "02155123450\n"
             + "02166123450\n"
             + "02188123450";

        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        final Matcher matcher = pattern.matcher(string);

        while (matcher.find()) {
            System.out.println("Full match: " + matcher.group(0));
            for (int i = 1; i <= matcher.groupCount(); i++) {
                System.out.println("Group " + i + ": " + matcher.group(i));
            }
        }

    }
}

Схема RegEx

jex.im визуализирует регулярные выражения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...