[英]Extract House Number and Street Name from string using Python Regex
[英]Python regex to match street name and house number
我有一個匹配街道名稱的正則表達式(參見演示 1 ),我有一個匹配德國可能門牌號的正則表達式(參見演示 2 )。 每個正則表達式都可以正常工作。 在下一步中,我想結合兩個正則表達式(街道名稱+門牌號)。 換句話說,我正在尋找一個將街道名稱和門牌號碼匹配在一起的正則表達式。
我准備了一個帶有示例的演示 3 。 如果您將其與此處的嚴格規則進行比較,我知道這些示例並不完整,但對於我的用例來說已經足夠了。
由於正則表達式是一種基於規則的語言,讓我嘗試用文字來解釋規則:
.
或-
介於兩者之間。99
或99a
。 但我試圖發揮創造力並添加了一些額外的可能示例我的問題:我對每個單獨的情況都有解決方案(參見演示 1 和 2),但我的問題是我不知道如何將兩個正則表達式組合為一個(參見演示 3)。
街道名稱的工作正則表達式:
^(?:[A-Z] \d|[^\W\d_]{2,}\.?)(?:[- '’][^\W\d_]+\.?)*$
門牌號碼的工作正則表達式:
^[1-9]\d{0,3} ?[a-zA-Z]?(?: ?[/-] ?[1-9]\d{0,3} ?[a-zA-Z]?)?$
基於上面顯示的正則表達式,我如何將它們結合起來以匹配我在演示 3中顯示的示例?
將 2 個正則表達式合二為一:
^(?:[A-Z] \d|[^\W\d_]{2,}\.?)(?:[- '’][^\W\d_]+\.?)*\s+[1-9]\d{0,3} ?[a-zA-Z]?(?: ?[/-] ?[1-9]\d{0,3} ?[a-zA-Z]?)?$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.