У меня есть строка формы "Some lengthy string, Pattern1: string1, Pattern2: string2, Pattern3: string3"
. Моя цель состоит в том, чтобы извлечь string1
, string2
и string3
из таких String
.Сплит-строка нескольких шаблонов
Отметьте, что сами Strings
, Pattern1
, Pattern2
и Pattern3
состоят из нескольких символов. Я знаю решение, если эти шаблоны были одиночными. В настоящее время я вынужден делать несколько звонков String.split()
по одному для Pattern1
, Pattern2
и Pattern3
.
Есть ли более изящный способ сделать это? Или нет экранирования нескольких звонков split()
?
EDIT: Я искал или использовал конкретное решение (поэтому Java был в заголовке, но он был отредактирован). Так или иначе. Это то, что я пробовал, и, похоже, это работает для меня.
String someString = "Some lengthy string Pattern1: string1 Pattern2: string2 Pattern3: string3";
String [] str = someString.split("Pattern1:|Pattern2:|Pattern3:");
System.out.println(str[1]);
System.out.println(str[2]);
System.out.println(str[3]);
Выход этого
string1
string2
string3
Любые очевидные проблемы с этим?
Захват группы могут помочь: [ 'Pattern1 (s): (. *) \ С *, \ S * Pattern2: \ s * (. *?), \ s * Pattern3: \ s * (. *) "'] (https://regex101.com/r/LA4cts/2) –