2013-02-15 2 views
2

у меня есть огромная строка, которая выглядит как:Java регулярное выражение, чтобы удалить одиночные кавычки вокруг ничего

widgets: '{some-really-huge-string-omitted-for-brevity}' 

И я хотел бы, чтобы удалить одиночные кавычки, так что я получаю:

widgets: {some-really-huge-string-omitted-for-brevity} 

В reality, some-really-huge-string-omitted-for-brevity - массивная строка, содержащая буквенно-цифровые символы, знаки препинания, в основном все под солнцем. Моя лучшая попытка:

bigString = bigString.replaceAll("widgets: '\\{*\\}'", "widgets: \\{*\\}"); 

Не выбрасывает никаких исключений/ошибок, но также не изменяет ничего! Когда я печатаю bigString, он все тот же, что и перед заменой! Есть идеи? Заранее спасибо.

ответ

1

Если котировки всегда находятся в этих местах. (т. е. 9-й и последний символы строки), то просто используйте подстроку для обрезки и воссоединения. Сканирование всей строки будет медленным и бессмысленным.

 
String trimmed = hugeString.substring(0, 9) + hugeString.substring(10, hugeString.length() - 1); 

Обновлено

Видя, как вы приняли этот ответ, это может быть более эффективной версии:

 
StringBuilder b = new StringBuilder(hugeString); 
b.deleteCharAt(9); 
b.deleteCharAt(b.length() - 1); 
String trimmed = b.toString(); 
+0

Интересно, что ни одно из регулярных выражений не работало. Но это было сделано. Благодаря! – 2013-02-15 14:09:18

1
String str = "widgets: '{some-really-huge-string-omitted-for-brevity}'"; 
System.out.println (str.replaceAll ("'([^']*)'", "$1")); 
1
string= string.replace("'", ""); 

Если вы хотите, чтобы удалить все одиночные кавычки что-либо попробовать выше кода.

string= string.replace("'{", "{").replace("}'","}"); 

Если вы хотите, чтобы удалить одиночные кавычки перед открытием фигурные скобки «{» и закрывающей фигурной скобки «}».

+0

Что происходит, если тело из «опущено-для-краткости» содержит одинарные кавычки? – dasblinkenlight

+0

Точно - спасибо Ачинтя, но это не помогает мне в данной ситуации. – 2013-02-15 13:35:25

+0

@dasblinkenlight Вопрос убирает все одинарные кавычки вокруг чего-либо, поэтому я предложил ответить. Спасибо –