簡體   English   中英

正則表達式:匹配“:”和“-”,但不匹配“ I-”

[英]Regex: match “:” and “-” but don't match “I-”

Ohare:Montrose:I-290 Circle:IL:IL
Ohare-Montrose-I_290-Circle-IL-IL
EB:Kennedy Expy:O'Hare:IL-43 (Harlem Ave):IL:IL

NB:I-894/US-45:Hale Interchange:Zoo Interchange:WI:IL

NB
I-894 / US-45
黑爾
立交
動物園互換
WI
IL

WB:Indiana-East-West:Eastpoint:Middlebury:IN:25:IL

WB
印第安納東西
置邦
明德

25
IL

試圖從使用不同約定的兩個不同來源中提取單詞。

為此使用正則表達式,我無法創建一個同時處理這兩個選項的正則表達式。

如果我嘗試使用:-提取,則第一個提取為

Ohare, Montrose, I, 290 Circle, IL, IL

如何獲得正則表達式以進行拆分:-但忽略I-或忽略'IL-','US-','Indiana-East-West'和我可能發現的許多其他內容?

我迄今但不工作,我想正則表達式

您可以在正則表達式后面使用此否定式:

(?:(?:IL?|US)-|Indiana-East-West)(*SKIP)(*F)|[:-]

正則演示

示例代碼:

$s = 'NB:I-894/US-45:Hale Interchange:Zoo Interchange:WI:IL';
print_r(preg_split('/(?:(?:IL?|US)-|Indiana-East-West)(*SKIP)(*F)|[:-]/' , $s));
Array
(
    [0] => NB
    [1] => I-894/US-45
    [2] => Hale Interchange
    [3] => Zoo Interchange
    [4] => WI
    [5] => IL
)

暫無
暫無

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

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