Php 搜索州地址

Php 搜索州地址,php,parsing,Php,Parsing,我正在尝试解析一些网页,以检测网页上是否存在美国各州。我遇到的麻烦是,我的状态被删除,页面上的字符串匹配返回误报。例如,如果搜索的是AZ,页面上有单词amaze,则结果是亚利桑那州的存在。我的代码片段如下: //$state = "AZ"; if (stristr ( strip_tags ( $response ), $state ) != FALSE) { $stateMatch = true;; } 如何才能最好地进行这种类型的解析?如果$state变量正

我正在尝试解析一些网页,以检测网页上是否存在美国各州。我遇到的麻烦是,我的状态被删除,页面上的字符串匹配返回误报。例如,如果搜索的是AZ,页面上有单词amaze,则结果是亚利桑那州的存在。我的代码片段如下:

//$state = "AZ";
    if (stristr ( strip_tags ( $response ), $state ) != FALSE) {
        $stateMatch = true;;
    }

如何才能最好地进行这种类型的解析?如果$state变量正在存储相应的缩写词(AZ),我最好也搜索“亚利桑那州”的完整状态。

我曾经遇到过这种情况。我所做的,比如,如果我想搜索AZ,我想在AZ之前会发生什么。如果它是真正的州代码,而不是像amaze这样的任何其他单词,那么在AZ之前可能有空格、逗号、分号或括号等。简言之,AZ前面不能有任何字母,否则它是任何其他单词,而不是亚利桑那州的代码,因此您可以检查AZ前面的字符不应该是字母

我将搜索范围缩小为“搜索跟随”,而不仅仅是AZ,因为在我的情况下,我只能有以下组合
AZ
,AZ
(AZ

;AZ

我认为你运气不好,除非你要求在州缩写后面加一个句号

// $state ='AZ.'
或者相当清楚地知道缩写前有空格,缩写后有空格或句号

// $state = ' AZ '
// $state = ' AZ.'

很可能你总是会得到误报,因为像缅因州这样的州缩写为“我”——这在英语中是一个很常见的词(俄克拉何马州或俄勒冈州也可以).是否有任何聪明的正则表达式或其他形式的字符串匹配可以减少误报?我的意思是,对于Azi来说,肯定有比直接字符串匹配更好的方法。如果您试图在整个页面上而不是在特定元素中匹配它,您很可能是运气不佳,您将有更好的机会将其外包给late人们手动完成。或者等待。至少根据单词边界改进一点匹配。这显然仍然很糟糕。在大量文本中简单地解析状态缩写永远不会可靠。你可以通过搜索与格式化地址的接近程度来改进它,但即使这样也只能达到目前的效果。