( и regex
6 отговора
0 прегледа
( и regex
Здравейте,
опитвам се да replaceAll стринга "(haha)" със да кажем "haha ama ne". Проблема е, че ( е специален символ за регекс-а. Четох в гоогле, че се избягва с "\\(" , обаче не става. Помогнете!
п.п. Java 1.5
опитвам се да replaceAll стринга "(haha)" със да кажем "haha ama ne". Проблема е, че ( е специален символ за регекс-а. Четох в гоогле, че се избягва с "\\(" , обаче не става. Помогнете!
п.п. Java 1.5
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);
}
}
Може би аз не успявам да ти разбера въпроса, но какво ти пречи да направиш:
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);
}
}
Re: ( и regex
Здравей, може би не съм го обяснил правилно. Искам освен "хаха" да махна и скобите около него,т.е.
"Това е (хаха), а не блабла" => "Това е хаха ама не, а не блабла".
Проблема е, че реплацеАлл очаква regex, a не string, a в regex-a ( е специален символ някакъв.
Сега ми идва на идея на реплацеАлл само "хаха" и да проверявам дали предния и следващия символ не са ( или ) и да конкатенейтвам стрингове. Но не е добър вариант май.
Мерси!
"Това е (хаха), а не блабла" => "Това е хаха ама не, а не блабла".
Проблема е, че реплацеАлл очаква regex, a не string, a в regex-a ( е специален символ някакъв.
Сега ми идва на идея на реплацеАлл само "хаха" и да проверявам дали предния и следващия символ не са ( или ) и да конкатенейтвам стрингове. Но не е добър вариант май.
Мерси!
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);
}
}
Re: ( и regex
Да, това е идеята ми, но с малка разлика, може би от там се получава грешката.
String simple = "haha";
String from = "This is (haha), not a blabla";
String res = from.replaceAll("\\("+simple+"\\)","not a haha");
E това не работи както се очаква, и незнам защо.
Ще се използва substring най-вероятно, нямам избор.
Мерси!
п.п. Това, коети ти написа, си работи идеално :-)
String simple = "haha";
String from = "This is (haha), not a blabla";
String res = from.replaceAll("\\("+simple+"\\)","not a haha");
E това не работи както се очаква, и незнам защо.
Ще се използва substring най-вероятно, нямам избор.
Мерси!
п.п. Това, коети ти написа, си работи идеално :-)
Re: ( и regex
Аз продължавам нищо да не разбирам. Това, което ти написа дава като резултат:
This is not a haha, not a blabla
Не искаш ли точно това?
This is not a haha, not a blabla
Не искаш ли точно това?
Re: ( и regex
Хммм. Вероятно проблема е някъде в мойта инсталация на Java или Jdeveloper. Трябва да го пробвам на Eclipse или Idea.
Мерси отново.
Мерси отново.