2013-03-29 3 views
0

Замены с использованием регулярных выражений в Java - У меня есть строкаЗаменить строку с помощью регулярных выражений

 

    allof{ 
    condition {licenseState=="NY"} 
    condition{professionId==301} 
    condition {professionId=="301"} 
} 

бы это можно сделать замену в Java с использованием регулярных выражений, поэтому строка выглядит следующим образом один:

 


    allof{ 
    condition 'licenseState=="NY"', {licenseState=="NY"} 
    condition 'professionId==301', {professionId==301} 
    condition 'professionId=="301"', {professionId=="301"} 
    } 

В основном, что внутри внутри {} скобок и вкладывается отдельно. Это возможно и как? После каждого условия не гарантируется наличие символа NewLine.

Я пробовал:

condition\s*?{[a-zA-Z0-9=<>\s"']*} 
+1

Да, это возможно, что вы пробовали? – jbabey

+0

Я испробовал условие 'code' \ s *? {[A-zA-Z0-9 = <> \ s" '] *} 'code', который выбрал все, но я не знаю, как извлечь внутреннюю часть это – eugened

+0

Вот сайт, который вы можете использовать, чтобы проверить свое регулярное выражение: http://www.regexplanet.com/advanced/java/index.html. Попробуйте ваше регулярное выражение. –

ответ

1

Вы можете использовать функцию string replaceAll. Что-то вроде этого:

yourString.replaceAll("\\{([^{}]*\\=\\=[^{}]*)\\}", "'$1', {$1}"); 
+0

Это работает. – eugened

1

Предполагая, что не вложенная {}

str = str.replaceAll("(?<=condition)\\s*(\\{([^}]+)\\})", " '$2', $1"); 
Смежные вопросы