繁体   English   中英

如何匹配句子中的最后一个单词?

[英]How to match the last word in a sentence?

假设我们有一个句子(最后一个句子后面有几个单词,但不带点)。

我需要用一些html标记(例如<strong>lastword</strong> )包装最后一个单词。

如何使用Java正则表达式实现这一目标?

我已经尝试过了:

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

但它导致

John<strong> Doe Jr</strong>

ps如果在<strong>之后有一个空格是可以的,主要的问题是模式匹配最大的子序列,而我需要最小的子序列。

最后一个单词是结尾或字符串之前的非空格字符。 您可以使用[]定义一组字符,并使用^对其进行取反,如[^ az]一样,以匹配除az之外的所有字符。

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

与Marcelo Cantos的答案不同,这还具有不需要字符串中没有空格的优点。

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

\\ S是非空格字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM