Java regex для анализа цитируемых аргументовJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java regex для анализа цитируемых аргументов

Сообщение Anonymous »

Нужна шаблон 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»