Мені було цікаво, чи зможе хтось допомогти мені з цим регулярним виразом. Використовуючи тест регулярного виразу і таким чином я отримую результат, який я хочу, я не можу зробити те ж саме в Java
/^(?: {4})+(?=.+)/gm
Відповіді:
1 для відповіді № 1Використовуйте Pattern.MULTILINE
для /m
модифікатор (або прапор). І використовуйте ітератор для /g
. І, звичайно, видаліть розділювачі /
з обох кінців вашого регулярного виразу. Будь ласка, перегляньте цей приклад:
String input = "...some input...";
Pattern pattern = Pattern.compile("^(?: {4})+(?=.+)", Pattern.MULTILINE);
Matcher m = pattern.matcher(input);
// Using iterator doing the /g part here
while (m.find()) {
System.out.println(m.group(1));
}
1 для відповіді № 2
Видалити /gm
формування регулярного виразу. Це javascript regex not java.
Якщо ви хочете перетворити JavaScript-regex на java, у нас вже є відповідь тут. Подивитися Як перетворити регулярний вираз javascript в безпечний java regex?
0 для відповіді № 3
Це має зробити це:
Pattern regex = Pattern.compile("^(?: {4})+(?=.+)", Pattern.MULTILINE);