String.split(регулярное выражение строки) Предотвращение символов

#java #regex #string #split

#java #регулярное выражение #строка #разделение

Вопрос:

У меня есть

 String text2 = "Samaras did something by Papandreou's government.";
 

Когда я использую

 String[] w2 = text2.split("\s ");
 

он принимает «Papandreou» как целое слово (как и предполагалось). Но как я могу избежать 's после слова?

Комментарии:

1. Что вы подразумеваете под «избегать»? Неясно, каким должен быть результат.

2. вы можете дополнительно применить w2[4].substring(0,w2[4].indexOf("'")) к этому

3. Я хочу использовать это слово как есть для другой цели. Просто без ‘s

4. Затем включите это 's как часть разделителя. Вы можете сделать это необязательным с ? помощью metacharacter . На данный момент похоже, что вы ищете split("('s)?\s ") , но что-то подсказывает мне, что скоро вы обнаружите какую-то другую проблему, а затем вы опишете, чего вы действительно хотите достичь.

5. Что ж, пока хватит, спасибо!!

Ответ №1:

 text2.split("(\'s)?\s ");
 

Это регулярное выражение разделяет ‘s как необязательное, поэтому оно означает либо «Разделить ‘s следовать с пробелами», либо «Разделить только пробелы».

Комментарии:

1. ' не является метасимволом регулярного выражения, поэтому нет необходимости избегать его, если только вы намеренно не пытаетесь немного запутать свой код или запутать кого-то, кто будет его поддерживать.