Php Regex:match";:&引用;及-&引用;但是不要';“t匹配”;我—“我认为;
NBPhp Regex:match";:&引用;及-&引用;但是不要';“t匹配”;我—“我认为;,php,regex,Php,Regex,NB I-894/US-45 黑尔 交换 动物园立交桥 WI 白细胞介素 WB 印第安纳州东西部 东点 米德尔伯里 在 25 白细胞介素 尝试从使用不同约定的两个不同来源提取单词 使用正则表达式,我无法创建一个同时处理这两个选项的正则表达式 如果我尝试使用:或-提取,那么第一个将被提取为 WB:Indiana-East-West:Eastpoint:Middlebury:IN:25:IL 如何让正则表达式在:或-上拆分,但忽略I-或忽略“IL-”、“US-”、“Indiana East Wes
I-894/US-45
黑尔
交换
动物园立交桥
WI
白细胞介素 WB
印第安纳州东西部
东点
米德尔伯里
在
25
白细胞介素 尝试从使用不同约定的两个不同来源提取单词 使用正则表达式,我无法创建一个同时处理这两个选项的正则表达式 如果我尝试使用
:
或-
提取,那么第一个将被提取为
WB:Indiana-East-West:Eastpoint:Middlebury:IN:25:IL
如何让正则表达式在:
或-
上拆分,但忽略I-
或忽略“IL-”、“US-”、“Indiana East West”和我可能找到的许多其他正则表达式
到目前为止我所拥有的,但不是我想要的
您可以使用此反向查找正则表达式:
Ohare, Montrose, I, 290 Circle, IL, IL
示例代码:
(?:(?:IL?|US)-|Indiana-East-West)(*SKIP)(*F)|[:-]
虽然代码可以工作,但我需要能够排除I(在某些情况下包括美国)和印第安纳州西-东等等。我可以排除整个事件而不链接到-?它可以处理,但我需要查看您的示例输入和预期输出。你能编辑问题并提供它吗?更新!谢谢你的帮助。不幸的是它没有像我所希望的那样工作。我得到了灾难性的回溯错误。难道没有别的办法吗。我只需要匹配特定的字符,而忽略其他字符对。你提供的正则表达式似乎有点太复杂了。你说得对。这迫使我重新思考一切,因为我认为我无法从这两个来源中正确提取。我得为他们每个人单独做。谢谢你的帮助。
(?:(?: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
)