Я работаю над классом, для которого его целью является просмотр строки (строки) текста и поиск всех строк или подстрок, для которых содержатся определенные специфические символы, в этом случае символы «ABC123».Matcher Class Java - сопоставление нескольких подстрок в одной строке
Текущий код, который я написал частично, работает, но только находит первую подстроку в строке текста ... другими словами, если строка текста, на которую она смотрит, содержит несколько подстрок, которые содержат «ABC123», он только находит и возвращает первую подстроку.
Как я могу изменить код, чтобы найти ВСЕ подстроки в строке текста?
Ниже мой текущий код:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//For grabbing the Sub-string and separating it with white space
public class GrabBLSubString {
public static void main(String[] args) {
test("Viuhaskfdksjfkds ABC1234975723434 fkdsjkfjaksjfklsdakldjsen ABC123xyxyxyxyxyxyxyxyxyx");
test("ABC1234975723434");
test("Viuhaskfdksjfkds APLIC4975723434 fkdsjkfjaksjfklsdakldjsen");
test("abc ABC12349-75(723)4$34 xyz");
}
private static void test(String text) {
Matcher m = Pattern.compile("\\bABC123.*?\\b").matcher(text);//"\\bABC123.*?\\b"____Word boundary // (?<=^|\s)ABC123\S*__For White spaces
if (m.find()) {
System.out.println(m.group());
} else {
System.out.println("Not found: " + text);
}
}
}
Как вы можете видеть, этот код возвращает следующее:
APLU4975723434
APLU4975723434
Not found: Viuhaskfdksjfkds APLIC4975723434 fkdsjkfjaksjfklsdakldjsen
APLU49
и не находит (что я хочу, чтобы это !!) текст " ABC123xyxyxyxyxyxyxyxyxyx "в первой строке.
Благодарим за помощь!