Заменить последовательность символов в Java с помощью регулярного выражения - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть следующий текст

"Этот мяч не твой, этот - Джон?"

Я хочу исправить это, чтобы

"Этотмяч не твой, этот Джон "

Как я могу сделать это в Java, используя Pattern и Matcher?

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

string.replaceall

 String fixed = old.replaceAll("\\?([ts])", "'$1");

Вот пример

0 голосов
/ 23 сентября 2011

В этом случае вы можете использовать:

s = s.replaceAll("\\b?\\b", "'");

Тогда у вас будет гораздо меньше шансов заменить законные знаки вопроса, как упоминал @glowcoder. Тем не менее, я думаю, что @Philipp прав, и это действительно проблема кодировки символов. Похоже, ваш текст должен был быть:

"This ball isn’t yours, this one is John’s"

Если он был закодирован как cp-1252, но декодирован как ASCII, фигурные одинарные кавычки будут заменены вопросительными знаками. Если это так, вы, вероятно, найдете другие символы, такие как фигурные двойные кавычки (“ ”), en-dash () и em-dash (), которые были спрятаны в одном способ.

...