2013-04-16 6 views
1

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

Главная точка: Я хочу, чтобы заменить матч регулярного выражения с частью матча так, если я REGEX привет я хочу, чтобы заменить {привет} , если регулярное выражение матч на я хочу, чтобы заменить {на}

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

this <h1>is</h1> awesome look <h1>at</h1> this two letter words get replaced 

уведомление, как есть, и в котором будет соответствовать регулярное выражение \ Ь \ ш \ ш \ Ь будет соответствовать заменяемый

это код, над которым я работал ... не судите, что он не закончен, но я немного смущен и задаюсь вопросом, есть ли более простой способ. Я искал строку и находил совпадения, а затем я собирался перейти к арраисту и заменить каждый. Проблема в том, что я заменяю это {и я хочу заменить ее на {{} , теперь это выглядит так, что это будет постоянно заменять скобки, потому что я продолжаю добавлять их ... так что моя другая мысль заключалась в их замене все по одному символу char и добавить к новому объекту StringBuilder?

ArrayList<String> replacements= new ArrayList<String>(); 
String s="::"; 
s+=command; 
Pattern p= Pattern.compile("[!-~]"); 
Matcher match= p.matcher(this.execution); 
while(match.find()){ 
    replacements.add(match.group()); 
} 
StringBuilder string= new StringBuilder(); 
for(int i=0;i<this.execution.length();i++){ 
    String a=new String(execution.charAt(i)); 
    if(...){ 
     ... 
    } 
} 
s+="::"+this.execution; 

ответ

5

попробовать

str = str.replaceAll("(\\b\\w\\w\\b)", "<h1>$1</h1>"); 
+0

это $ 1 означает текущий матч? спасибо, что нашли время –

+0

$ 1 означает группу # 1 в текущем матче. group - это выражение в круглых скобках –

+0

, поэтому мне пришлось бы делать $ 1, $ 2 ..etc для каждого матча тогда? –