Пример регулярного выражения с учетом регистра - Java

Пример регулярного выражения с учетом регистра - Java

В Java по умолчанию сопоставление регулярного выражения (regex) чувствительно к регистру. Чтобы включить нечувствительность к регистру в регулярных выражениях, добавьте префикс(?) или включите флаг нечувствительности к регистру непосредственно вPattern.compile().

Пример шаблона регулярного выражения.

Pattern = Registrar:\\s(.*)

Нечувствительность к регистру, добавьте префикс(?).

Pattern = (?)Registrar:\\s(.*)

Нечувствительность к регистру, добавьте флаг Pattern.CASE_INSENSITIVE.

Pattern.compile("Registrar:\\s(.*)", Pattern.CASE_INSENSITIVE);

1. Пример RegEx

Пример использования сопоставления без учета регистра в регулярных выражениях для получения информации о «Регистраторе».

package com.example.regex

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

public class RunExampleTest{

    private Pattern registrarPattern = Pattern.compile(REGISTRAR_PATTERN);

    //alternative
    /*private Pattern registrarPattern =
        Pattern.compile(REGISTRAR_PATTERN, Pattern.CASE_INSENSITIVE);*/

    private Matcher matcher;

    private static final String REGISTRAR_PATTERN = "(?)Registrar:\\s(.*)";

    public static void main(String[] args) {

        String data = "Testing... \n" +
            "Registrar: abc.whois.com\n" +
            "registrar: 123.whois.com\n" +
            "end testing";

        RunExampleTest obj = new RunExampleTest();
        List list = obj.getRegistrar(data);

        System.out.println(list);

    }

    private List getRegistrar(String data){

        List result = new ArrayList();

        matcher = registrarPattern.matcher(data);

        while (matcher.find()) {
            result.add(matcher.group(1));
        }

        return result;
    }

}

Выход

[abc.whois.com, 123.whois.com]

Note
Если (?) удалить, будет возвращен только [abc.whois.com]. (Чувствительный к регистру).