[英]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.