[英]regex match only if there is one occurence of string and it's the last occurence
希望標題有意義
我當前的正則表達式是.phone.*.telephoneNumber\/?$
。 我正在嘗試匹配 json 路徑,路徑看起來像這樣
使用我當前的正則表達式,這兩個都匹配
我需要.*
0 或更多電話號碼前的任何字符,因為/phone/..
之后可能有任何字符,我正在嘗試查找以telephoneNumber
結尾的匹配項,前提是它后面沒有跟另一個/telephoneNumber
0 個或多個電話號碼前的任何字符。
如果你的意思是字符數可以是 0 或更多,那么使用這個
\/phone\/(?:\w+\/)?telephoneNumber\/?$
如果你的意思是它應該是一個大於 0 的數字,那么使用這個
\/phone\/\d+\/telephoneNumber\/?$
如果telephoneNumber是文字字符串,那么您可以使用否定前瞻來確保它不在phone/和/telephoneNumber之間。
\/phone\/0\/((?!telephoneNumber).)*telephoneNumber$
匹配/phone/0/telephoneNumber
不匹配/phone/0/telephoneNumber/telephoneNumber
警告這與/phone/0/telephonenumber/telephoneNumber
匹配,除非我們使用不區分大小寫的選項/i
。
因此,完整的正則表達式是
/\/phone\/0\/((?!telephoneNumber).)*telephoneNumber$/gmi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.