Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Regex:match";:&引用;及-&引用;但是不要';“t匹配”;我—“我认为;_Php_Regex - Fatal编程技术网

Php Regex:match";:&引用;及-&引用;但是不要';“t匹配”;我—“我认为;

Php 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

NB
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
)