Регулярное выражение для соответствия /src/main/-199AN - PullRequest
0 голосов
/ 15 мая 2019

Мне нужно Regex для набора, включающего только файлы из /src/main/java/{any_package}/*.java, чтобы применять правила CheckStyle только к этим файлам в Eclipse.

Все остальные файлы, например, нет. * .Java файлы, src / test / должны игнорироваться.

Ответы [ 2 ]

1 голос
/ 15 июня 2019

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

^\/src\/main\/java(\/[^\/]+)?\/\*\.java$

Демонстрация 1

Я предполагаю, что здесь мы хотим передать:

/src/main/java/{any_package}/*.java
/src/main/java/*.java

Если второй нежелателен, томы просто удалили необязательную группу:

^\/src\/main\/java(\/[^\/]+)\/\*\.java$

Demo 2

, и она все еще может работать.

Тест

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

final String regex = "^\\/src\\/main\\/java(\\/[^\\/]+)\\/\\*\\.java$";
final String string = "/src/main/java/{any_package}/*.java\n"
     + "/src/main/java/*.java";

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

0 голосов
/ 15 мая 2019

Регулярное выражение, которое я ищу, это src[\/]main\/java\/?(?:[^\/]+\/?)*.java$

Тестовое демо Regex 101

...