#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.
'
не является метасимволом регулярного выражения, поэтому нет необходимости избегать его, если только вы намеренно не пытаетесь немного запутать свой код или запутать кого-то, кто будет его поддерживать.