строка Java разделена на все не алфавитно-цифровые, кроме апострофов

Поэтому я хочу разбить строку в Java на любые не буквенно-цифровые символы.

В настоящее время я делаю это так

words= Str.split("\\W+");

Однако я хочу сохранить там апострофы ("" "). Есть ли какое-нибудь регулярное выражение, чтобы сохранить апострофы, но пнуть остальную часть барахла? Благодарю.

Ответы на вопрос(2)

Для основных английских символов используйте

words = Str.split("[^a-zA-Z0-9']+");

Если вы хотите включить английские слова со специальными символами (например,fiancé) или для языков, которые используют неанглийские символы, используйте

words = Str.split("[^\\p{L}0-9']+");
Решение Вопроса
words = Str.split("[^\\w']+");

Просто добавьте его в класс персонажа.\W эквивалентно[^\w], который вы можете добавить' к.

Обратите внимание, однако, что\w также на самом деле включает в себя подчеркивание. Если вы хотите разделить на подчеркивания, вы должны использовать[^a-zA-Z0-9'] вместо.

 04 июл. 2012 г., 18:38
Конечно, но так как они уже использовали\WЯ решил сохранить это. Тем не менее, я добавил примечание об этом.
 04 июл. 2012 г., 21:03
a-zA-Z работает только для английских символов. Более общий подход\p{L}, Кстати, чтобы уменьшить путаницу, вы должны действительно избежать этого.

Ваш ответ на вопрос