簡體   English   中英

如果使用正則表達式使用2個字符長,則替換字符串中的最后一個單詞

[英]Replace last word in a string if it is 2 characters long using regex

我正在嘗試使用正則表達式替換字符串的最后一個單詞,如果它是2個字符長。 我使用了[a-zA-Z]{2}$但它找到了字符串的最后2個字符。 如果長度不是2個字符,我不想替換最后一個字,我怎么能這樣做?

您需要在兩個字母前匹配單詞邊界( \\b ):

\b[a-zA-Z]{2}$

這將匹配出現在字符串末尾的任何兩個拉丁字母,只要它們前面沒有“單詞”字符(拉丁字母,數字或下划線)。

如果您想要替換單詞,即使它前面有數字或下划線,您可能希望使用lookbehind斷言,如下所示:

(?<![a-zA-Z])[a-zA-Z]{2}$

\\\\b\\\\w\\\\w\\\\b$ (java風格的正則表達式)

也應該工作

編輯:事實上\\\\b\\\\w\\\\w$應該足夠了。 或非\\b\\w\\w$風格的\\b\\w\\w$ ..請參閱演示鏈接

你也可以使用:

[^\p{Alpha}]\p{Alpha}{2}$

如果數字計為單詞,請使用Alnum 但是,如果整個字符串只有兩個字符長,則會失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM