[英]Regular expression doesn't work
我有使用正則表達式的簡單代碼行,我想用空格替換字符串:
newAddress = myAddress.replace(/^.*?(ramp|arterial|majorroad|street &|highway &|highway|street|street &|street & highway|arterial & street|street & arterial|majorroad &|majorroad & ramp|ramp & majorroad|major road|highway & majorroad)\,/gi, '');
但是有一個變量:
Highway & Contrada Torremuzza, 95121 Catania CT
為什么沒有刪除“高速公路&”部分?
它也在嘗試匹配逗號,因此您需要使逗號為可選,或在這種情況下將其刪除。 另外,除非您也要刪除前面的文本,否則也要刪除字符串^
anchor和.*?
的開頭.*?
newAddress = myAddress.replace(/(ramp|arterial|majorroad|street &|highway &|highway|street|street &|street & highway|arterial & street|street & arterial|majorroad &|majorroad & ramp|ramp & majorroad|major road|highway & majorroad)/gi, '');
在我看來,您既不需要.*
也不需要逗號。 .*
將導致您替換字符串前面的所有內容。
試試這個:
(ramp|arterial|majorroad|street &|highway &|highway|street|street &|street & highway|arterial & street|street & arterial|majorroad &|majorroad & ramp|ramp & majorroad|major road|highway & majorroad)
或者,如果您想進行一些優化:
(?:majorroad & )?ramp|(?:major r|(?:(?:ramp|highway) & )?majorr)oad|(?:highway|majorroad|street) &|(?:arterial & )?street|(?:street & )?(?:arterial|highway)
開玩笑。 從理論上講,這是更有效的方法,但是卻很難維護。
我想我自己解決了:
newAddress = myAddress.replace(/^.*?ramp|arterial|majorroad|street|highway| &|\,/gi, '');
更短,更高效...因此至少它將與單詞加&匹配
干杯,路易吉
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.