[英]How to get the last occurrence of a word from a list of possible words using Javascript regex?
我需要測試地址是否包含地名列表中的特定地名。 例如,如果我的某個地址看起來像123 someplace, someStreet, dublin
那么下面的正則表達式(dublin|cork|galway)
將給我dublin
縣。
問題是,如果dublin
會出現在地址的其他部分,例如123 someplace, dublin road, cork
那么我仍然會得到dublin
但我實際上想要cork
。
是否有可能編寫一個正則表達式來獲取可能出現的匹配詞列表的最后一次出現(如果有的話)。 我看到C#正則表達式具有從右到左的選項,這很好,但是我不認為Javascript具有這樣的功能,對嗎?
請注意,我不能依賴地址的格式,因此可能不會用逗號分隔字符串。 同樣,盡管我要查找的詞很可能是字符串中的最后一個詞,但情況並非總是如此。
您可以使用正面的展望
(dublin|cork|galway)(?!.*(dublin|cork|galway))
匹配最后一次出現
看看正則表達式如何工作
http://regex101.com/r/yQ6bY1/2
(?!.*(dublin|cork|galway))
斷言在前面的模式(dublin | cork | galway)之后,該模式無法匹配
要么
更准確地說,
\b(dublin|cork|galway)\b(?!.*\b(dublin|cork|galway)\b)
感謝nhahtdh的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.