Нужна шаблон regex java для следующего сценария: < /p>
case 1: < /strong> < /p>
Входная строка: < /p>
"a"
< /code>
Соответствует: < /p>
a
< /code>
case 2: < /strong> < /p>
Входная строка: < /p>
"a b"
< /code>
Соответствует: < /p>
a b
< /code>
case 3: < /strong> < /p>
Входная строка: < /p>
"aA Bb" cCc 123 4 5 6 7xy "\"z9" "\"z9$^"
< /code>
Соответствует: < /p>
aA Bb
cCc
123
4
5
6
7xy
"z9
"z9$^
< /code>
case 4: < /strong> < /p>
Входная строка: < /p>
"a b c
< /code>
Соответствует: < /p>
None - since the quotes are unbalanced, hence pattern match fails.
< /code>
case 5: < /strong> < /p>
Входная строка: < /p>
"a b" "c
< /code>
Соответствует: < /p>
None - since the quotes are unbalanced, hence pattern match fails.
< /code>
case 6: < /strong> < /p>
Входная строка: < /p>
"a b" p q r "x y z"
< /code>
Соответствует: < /p>
a b
p
q
r
x y z
< /code>
case 7: < /strong> < /p>
Входная строка: < /p>
"a b" p q r "x y \"z\""
< /code>
Соответствует: < /p>
a b
p
q
r
x y "z"
< /code>
case 8: < /strong> < /p>
Входная строка: < /p>
"a b" p q r "x \"y \"z\""
< /code>
Соответствует: < /p>
a b
p
q
r
x "y "z"
< /code>
и, конечно, самый простой: < /p>
case 9: < /strong> < /p>
Входная строка: < /p>
a b
< /code>
Соответствует: < /p>
a
b
< /code>
Пробовал использование шаблона, но, похоже, не соответствует всем вышеупомянутым случаям. < /p>
public List parseArgs(String argStr) {
List params = new ArrayList();
String pattern = "\\s*(\"[^\"]+\"|[^\\s\"]+)";
Pattern quotedParamPattern = Pattern.compile(pattern);
Matcher matcher = quotedParamPattern.matcher(argStr);
while (matcher.find()) {
String param = matcher.group();
System.out.println(param);
params.add(param);
}
return params;
}
public void test(String argStr) {
String[] testStrings = new String[]{"a", "a b", "a b \"c\"", "a b \"c"};
for(String s: testStrings){
parseArgs(s);
}
}
Подробнее здесь: https://stackoverflow.com/questions/232 ... -arguments
Java regex для анализа цитируемых аргументов ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение