2013-02-18 3 views
1

Я пробовал следующее и ожидалось o/p.Структура шаблона регулярных выражений, чтобы избежать избирательного символа в соответствии с условием

String valueIn = test-3-4-HH{3-4}-FF{38-99} 
String[] valueInSplit = valueIn.split("-"); 

o/p array = [test, 3, 4, HH{3, 4}, FF{38, 99}] 

Можно ли в регулярном выражении, чтобы создать скороговоркой, который избегает «-» между «{» и «}», поэтому ожидается, о/р должен быть

o/p array = [test, 3, 4, HH{3-4}, FF{38-99}] 

Есть ли другие способ сделать это. Незлая помощь.

ответ

1

Возможно, с допущением, что имеется только 1 уровень кронштейна {}, а скобки открыты и закрыты должным образом. Используйте это регулярное выражение с split функции:

-(?![^{}]*}) 

As String литералов:

"-(?![^{}]*})" 

регулярное выражение проверяет, что - в настоящее время не внутри кронштейна, проверяя, можно ли найти закрывающую скобку } от тока положение строки, при условии, что символ между ними не имеет открывающего кронштейна { или закрывающего кронштейна }.

+0

Это является большим, его работы. Спасибо за помощь. Спасибо –

1

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

Вот что я закончил с:

-(?!\d+\}) 
+0

Это тоже работает. Благодарю. –

 Смежные вопросы

  • Нет связанных вопросов^_^