2016-10-26 2 views
1

Мой входКак добавить текст между предложением с помощью регулярного выражения?

<option value="" disabled selected hidden> 

Выход должен быть чем-то вроде этого:

<option value="" disabled="disabled" selected="selected" hidden=""> 

Тогда я попробовал этот код;

final String REGEX_DISABLED = "(?<=option value=\"\" disabled)(?=.*)"; 
    final String REPLACE_DISABLED = "=\"disabled\""; 
    Pattern disP = Pattern.compile(REGEX_DISABLED); 
    Matcher disM = disP.matcher(text); 
    text = disM.replaceAll(REPLACE_DISABLED); 

    final String REGEX_SELECTED = "(?<==\"disabled\" selected)(?=.*)"; 
    final String REPLACE_SELECTED = "=\"selected\""; 
    Pattern selP = Pattern.compile(REGEX_SELECTED); 
    Matcher selM = selP.matcher(text); 
    text = selM.replaceAll(REPLACE_SELECTED); 


    final String REGEX_HIDDEN = "(?<==\"selected\" hidden)(?=.*)"; 
    final String REPLACE_HIDDEN = "=“”"; 
    Pattern hidP = Pattern.compile(REGEX_HIDDEN); 
    Matcher hidM = hidP.matcher(text); 
    text = hidM.replaceAll(REPLACE_HIDDEN); 

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

+0

кажется, что вы собираетесь сделать "синтаксически" правильные изменения в данных XML. Подсказка: затем используйте инструменты, которые понимают XML. XML и регулярное выражение сами по себе не являются хорошим сочетанием. Поскольку более поздняя ** вообще не может ** охватывать все параметры zillion, которые могут исправить XML. См. Http://stackoverflow.com/questions/8577060/why-is-it-such-a-bad-idea-to-parse-xml-with-regex например – GhostCat

ответ

0

Попробуйте это:

"<option(.*?)\\s+(disabled)\\s+(selected)\\s+(hidden)>" 

Explanation

JAVA Пример

final String regex = "<option(.*?)\\s+(disabled)\\s+(selected)\\s+(hidden)>"; 
final String string = "<option value=\"\" disabled selected hidden>\n\n" 
    + "<option value=\"adfsa\" disabled selected hidden>\n\n" 
    + "<option value=\"111\" disabled selected hidden>\n\n\n\n"; 
final String subst = "<option $1 $2=\"disabled\" $3=\"disabled\" $4=\"hidden\">"; 

final Pattern pattern = Pattern.compile(regex); 
final Matcher matcher = pattern.matcher(string); 

// The substituted value will be contained in the result variable 
final String result = matcher.replaceAll(subst); 

System.out.println("Substitution result: " + result); 
+0

Спасибо! Это очень полезно! – firecatcher

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