Как сопоставить последнее слово в предложении? - PullRequest
0 голосов
/ 21 июля 2010

Предположим, у нас есть одно предложение (несколько слов без точки после последнего).

Мне нужно обернуть последнее слово некоторыми HTML-тегами (например, <strong>lastword</strong>).

Как мне добиться этого с помощью регулярных выражений Java?

Я уже пробовал это:

"John Doe Jr".replaceAll ("( .+$)", "<strong>$1</strong>");

но это приводит к

John<strong> Doe Jr</strong>

p.s. Это нормально, если после <strong> есть пробел, основная проблема в том, что шаблон соответствует самой большой подпоследовательности, а мне нужна самая маленькая.

Ответы [ 2 ]

2 голосов
/ 21 июля 2010
"John Doe Jr".replaceAll("(\\S+)$", "<strong>$1</strong>")

\ S - символ без пробелов

2 голосов
/ 21 июля 2010

Последнее слово будет непробельными символами, предшествующими концу или строке.Вы можете определить набор символов с помощью [] и отменить его с помощью ^, как в [^ az], чтобы соответствовать всему, кроме az.

"John Doe Jr".replaceAll("([^ ]+)$", "<strong>$1</strong>");

Это также имеет то преимущество, что не требует, чтобыв строке должны быть пробелы, в отличие от ответа Марсело Кантоса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...