В настоящее время я пытаюсь понять Pattern и Matcher немного больше и нашел следующий код:
private static final Pattern PATTERN = Pattern.compile(
String.format("addPart%s(?<assembly>%s)\\+(?<amount>%s)%s(?<part>%s)",
InOutputStrings.COMMAND_SEPARATOR,
InOutputStrings.NAME_PATTERN,
InOutputStrings.NUMBER_PATTERN,
InOutputStrings.INNER_SEPARATOR,
InOutputStrings.NAME_PATTERN));
private String assemblyName;
private int amount;
private String partName;
...
assemblyName = matcher.group("assembly");
amount = tryParse(matcher.group("amount"));
partName = matcher.group("part");
, где
NAME_PATTERN("[a-zA-Z]+"),
NUMBER_PATTERN("(?!(0[0-9]))[0-9]+"),
COMMAND_SEPARATOR(" "),
ARGUMENT_SEPARATOR(";"),
INNER_SEPARATOR(":")
Что будет правильным вводом здесь?
Может кто-нибудь показать мне, как это будет выглядеть для шаблона ввода
"add track <startPoint> -> <endPoint>
"?
Я работаю над шаблоном командной строки, и это было бы хорошим способом реализации синтаксического анализа ввода.
Кроме того, что означает "?", "\\+" and "<assembly>"...
?