簡體   English   中英

如何使用Javascript正則表達式從可能單詞的列表中獲取單詞的最后出現?

[英]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的建議。

找到所需的字符串並檢查行尾是否不包含該字符串。

(dublin|cork|galway)(?!.*(dublin|cork|galway))

正則表達式演示

暫無
暫無

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

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