因此,我已经连续三天使用PHP脚本工作,该脚本可以从各州获取各种银行信息。除了地址的开头,我正在拉的所有单一值都可以使用。
这不一定是完美的,我正在刮掉>和<符号使它更容易。这些是我需要匹配的例子。事实上我写了一些代码来剥离大于和小于字符的代码 - 请注意我只对地址结束感兴趣:Way,Street,St.,St,Avenue,Ave,Ave.,Road,Rd, Rd。,Highway,Hwy,Hwy,Boulevard,Bvd,Bvd。,Crescent,Cres。,Cres等。
>20 Cross Street<
>1 Dillinger Avenue<
>189 Beautiful Way<
>5768 Some Longer Address That Is Crazy Like Ave.<
>857489 Monkey On My Back Highway<
>378 My Pants Are Ablaze Boulevard<
这是我到目前为止所拥有的;
'~>[0-9]{1-7}.*\s[Street|St.|St|Road|Rd|Rd.]<~'
答案 0 :(得分:1)
使用{1-7}以昏迷{1,7}
取消点数并替换短划线[0-9]{1,7}.*\s(?:Street|St\.|St|Road|Rd|Rd\.)
答案 1 :(得分:0)
你需要做出至少一个重要的改变和一些小的改变:
'~>[0-9]{1,7}.*\s(?:Street|St\.?Road|Rd\.?)<~'
^^ ^
在你的表达式中,你使用了一个字符类,这是错误的,因为字符类中的所有内容都是字面意义的,它是一组字符,而不是单词。
{1-7}
错误,{1,7}
用于匹配之前1到7次之间的内容。
此外,您无法直接使用.
,因为它们具有特殊含义,因此您需要像\.
一样转义它们。
换句话说,[Street|St.|St|Road|Rd|Rd.]
匹配单个字符而不是整个单词,它甚至可以匹配|
。{/ p>
答案 2 :(得分:0)
如果您要查找包含列表中任何字符串的任何地址,则必须将其定义为“匹配模式”的一部分。
你可以使用preg_match()函数,如果找到匹配则返回1,否则返回0。
匹配模式的示例列表可以是:
/Street|St.*|Way|Avenue/等。
答案 3 :(得分:0)
这不是正则表达式,但可以解析街道地址?
Parse A Steet Address into components
即使这不能解决您的问题,正则表达式也是此问题的错误解决方案,您需要解析器或语法。比正则表达更复杂的东西。
你会疯狂地试图用正则表达式来解决这个问题。