( и regex

6 отговора 0 прегледа
#1

( и regex

Здравейте,

опитвам се да replaceAll стринга "(haha)" със да кажем "haha ama ne". Проблема е, че ( е специален символ за регекс-а. Четох в гоогле, че се избягва с "\\(" , обаче не става. Помогнете!

п.п. Java 1.5

Отговор
в отговор на EroS #2

Re: ( и regex

Привет,
Може би аз не успявам да ти разбера въпроса, но какво ти пречи да направиш:

public class ReplaceAll {
public static void main(String[] args) {
String str = "това е (хаха) единствено (хаха) пробен текст (хаха)";
String oldString = "\\(хаха\\)";
String newString = "\\(хаха ама не\\)";

System.out.println(str);

str = str.replaceAll(oldString, newString);

System.out.println(str);
}
}

Отговор
в отговор на igurbev #3

Re: ( и regex

Здравей, може би не съм го обяснил правилно. Искам освен "хаха" да махна и скобите около него,т.е.
"Това е (хаха), а не блабла" => "Това е хаха ама не, а не блабла".
Проблема е, че реплацеАлл очаква regex, a не string, a в regex-a ( е специален символ някакъв.

Сега ми идва на идея на реплацеАлл само "хаха" и да проверявам дали предния и следващия символ не са ( или ) и да конкатенейтвам стрингове. Но не е добър вариант май.

Мерси!

Отговор
в отговор на EroS #4

Re: ( и regex

Ми аз пак не разбирам. Това ли се опитваш да направиш:

public class ReplaceAll {
public static void main(String[] args) {
String str = "това е (хаха), а не блабла";
String oldString = "\\(хаха\\)";
String newString = "хаха";

System.out.println(str);

str = str.replaceAll(oldString, newString);

System.out.println(str);
}
}

Отговор
в отговор на igurbev #5

Re: ( и regex

Да, това е идеята ми, но с малка разлика, може би от там се получава грешката.

String simple = "haha";
String from = "This is (haha), not a blabla";
String res = from.replaceAll("\\("+simple+"\\)","not a haha");

E това не работи както се очаква, и незнам защо.

Ще се използва substring най-вероятно, нямам избор.

Мерси!

п.п. Това, коети ти написа, си работи идеално :-)

Отговор
в отговор на EroS #6

Re: ( и regex

Аз продължавам нищо да не разбирам. Това, което ти написа дава като резултат:

This is not a haha, not a blabla

Не искаш ли точно това?

Отговор
в отговор на igurbev #7

Re: ( и regex

Хммм. Вероятно проблема е някъде в мойта инсталация на Java или Jdeveloper. Трябва да го пробвам на Eclipse или Idea.

Мерси отново.

Отговор