Я хотел бы найти некоторые утверждения в файле. И мне нужно распечатать имя элемента и подэлемента. Утверждение типа
set element elemName subElem sumElemName
Если имя элемента или подэлемента содержит один или несколько пробелов, вся строка должна быть заключена в двойные кавычки. Двойные кавычки не нужны, если в имени элемента или подэлемента нет пробела Таким образом, следующие утверждения действительны.
set element "aaa bbb" subElem "ccc"
set element "aaa bbb" subElem ccc
set element "aaa" subElem "ccc"
Я пытался написать два выражения для удовлетворения некоторых случаев. Но как написать одно регулярное выражение для удовлетворения всех случаев?
String regex = "^\\s*set\\s+element\\s+\"(.*)\"\\s+subElem\\s+\"(.*)\"\\s*$";
String regex = "^\\s*set\\s+element\\s+(?<!\")(\\S+)\\s+subElem\\s+(?<!\")(\\S+)\\s*$";