2015-10-26 2 views
-1

Я хочу, чтобы принести слово вне цитаты, например, если у меня есть этот текст:захватный значения не между кавычки (регулярное выражение)

xxxx xxx OK xxxxx "xxx OK xxxx" 

Я хочу, чтобы принести «ОК» вне цитаты, которые означают первый один я делаю это регулярное выражение

[ ]OK[ ] 

но принести оба. Итак, как я могу получить только вне цитаты с регулярным выражением?

+0

который языки вы работаете? –

+0

Я использую этот сайт http://regexr.com/, чтобы проверить его. –

+1

что случилось с https://regex101.com/r/qJ7eI8/1? –

ответ

1

Вы можете использовать комбинацию группы поиска и оператора чередования регулярных выражений.

"[^"]*"|(OK) 

А теперь индекс группы 1 содержат <space>OR<space>, которая существует вне двойные кавычки части.

Код:

Matcher m = Pattern.compile("\"[^\"]*\"|(OK)").matcher(s); 
while(m.find()) 
{ 
System.out.println(m.group(1)); 
} 
Смежные вопросы