我有以下美國地址的例子。
6301 Stonewood Dr Apt-728, Plano TX-75024
13323 Maham Road, Apt # 1621, Dallas, TX 75240
17040 Carlson Drive, #1027 Parker, CO 80134
3465 25th St., San Francisco, CA 94110
我想從使用正則運算式中提取城市
普萊諾、達拉斯、帕克、舊金山
我正在使用以下正則運算式,它適用于第一個示例
(?<=[,.|?]).*\s (?=[\s,.]?CA?[\s,.-]?[\d]{4,})
你能幫我一樣嗎?
uj5u.com熱心網友回復:
另一種方法(假設結尾的結構或多或少是固定的)
. \s(\w ?),?.{4}\d{4,}
uj5u.com熱心網友回復:
我能做到的最好的猜測是從字串的末尾開始尋找一系列非空格字符(即您正在尋找的部分),然后是一個空格,一個大寫字母鏈,然后是一個選項空格/破折號和最后是一串數字。
([^\s] ?)\,?\s[A-Z] [\s\-]?\d $
作為第一組,你瞄準的目標。
這是一個嵌入了您的用例的實時示例:
https://regexr.com/6nkq5
(作為旁注,regexr 上的演示可能會告訴您運算式花費了超過 250 毫秒并且無法呈現。您只需稍微編輯測驗用例以使其更新并顯示實際結果)
uj5u.com熱心網友回復:
您可以使用
,(?:\s*#\d )?\s*([^\s,][^,]*)(?=\W [A-Z]{2}\W*\d{4,}\s*$)
請參閱正則運算式演示。必要值在第 1 組中。
詳情:
,- 一個逗號(?:\s*#\d )?- 零個或多個空格的可選序列,#然后是一個或多個數字\s*- 零個或多個空格([^\s,][^,]*)- 第 1 組:一個字符而不是空格和逗號,然后是零個或多個非逗號字符(?=\W [A-Z]{2}\W*\d{4,}\s*$)- 一個積極的前瞻,需要(立即在右邊)\W- 一個或多個非單詞字符[A-Z]{2}- 兩個大寫 ASCII 字母\W*- 零個或多個非單詞字符\d{4,}- gfour 或更多數字\s*- 零個或多個空格$- 字串結束。
uj5u.com熱心網友回復:
您可以匹配逗號,然后匹配除 AZ 之外的所有字符,并從第一次出現的 AZ 中捕獲。
,[^A-Z,]*?\b([A-Z][^,]*?),?\s*[A-Z]{2}[-\s]\d{4,}\s*$
解釋
,[^A-Z,]*?\b匹配逗號,然后匹配除 AZ 或逗號之外的任何字符,直到單詞邊界([A-Z][^,]*?)捕獲組 1匹配 AZ,然后盡可能少地匹配除逗號之外的任何字符,?\s*[A-Z]{2}匹配可選的逗號、可選的空白字符和 2 個大寫字符 AZ[-\s]\d{4,}\s*匹配 - 或空白字符,然后是 4 個或更多數字,后跟可選的空白字符$字串結尾
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/489790.html
