簡體   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