Спасибо всем, кто может мне помочь. Мне нужно удалить все записи в строке, начиная с «{» и заканчивая на «}», включая скобки.Заменить все {любые символы} в строке Java
Я пытался что-то вроде этого:
value.replaceAll("{.}","")
Спасибо всем, кто может мне помочь. Мне нужно удалить все записи в строке, начиная с «{» и заканчивая на «}», включая скобки.Заменить все {любые символы} в строке Java
Я пытался что-то вроде этого:
value.replaceAll("{.}","")
value = value.replaceAll("\\{.*\\}",""));
С {
и }
специальные символы, вы должны использовать \\
, чтобы избежать их.
NB: вы не указали, нужно ли иметь дело с вложенными скобками или рядом скобок. Вышеупомянутое решение просто удаляет все символы, от {
до }
(также удаляет сами скобки).
Стив, Спасибо за вашу помощь. – k3naks
К сожалению, «. *» Нетерпеливо, так что это будет соответствовать всем, что существует между первым «{» и последним «}» –
@ user2561089. Поскольку вы новичок, вы должны взять [тур] (http://stackoverflow.com/about). –
Кудрявые фигурные скобки - это специальные символы в регулярных выражениях, поэтому вам нужно их избегать.
value.replaceAll("\\{[^\\}]*\\}", "");
Как вы можете видеть, вы также должны убедиться, что ни один другой закрывающая фигурная скобка не находится в подстроке заменяемого, чтобы избежать удаления, чтобы много, если есть несколько записей в строке, начиная с "{" и заканчивается на "}".
Если у вас вложенные скобки, это не сработает, и другие решения здесь не будут.
В настоящий момент вы ищете фигурные скобки с одним символом внутри, за исключением того, что вы не избежали фигурных скобок, которые имеют особое значение в регулярных выражениях. Так должно быть: \\{.*\\}
(*
предназначен для: совпадения как можно большего количества символов).
Но если у вас есть вход вроде: {ab}cd{ef}
, и вы хотите получить cd
, вам нужно использовать нежирный оператор или вы будете соответствовать всей строке.
В этом случае, вы можете попробовать это:
value = value.replaceAll("\\{.*?\\}","");
Попробуйте
String a="{hi}a";
String arr=a.replaceAll("\\{.*?\\}","");
System.out.println(arr);
было неправильно, когда они были опущены. Тебе не на что жаловаться. –
value = value.replaceAll("\\{.*\\}",""));
В фигурных скобках специальный characters.So вы можете попробовать это.
вам нужно показать нам какой-то код, который вы уже пробовали! – sanbhat
Вы должны дать ему шанс, много отличных вещей, которые помогут вам в «так называемом ...» Интернете. :) –
Этот вопрос неоднозначен, и разные ответы интерпретируют его по-разному. –