我需要在 php 地址中使用正则表达式进行匹配,例如:
邮政编码可以包含字母和/或数字。
这是我尝试过的:
print_r(preg_match('/^([0-9]+)\s([a-z]+)\s([a-z]+)\s([a-z]+)\s([a-z0-9]+)$/i', $t, $m));
print_r($m);
它输出:
Array
(
[0] => 123 asd asd asd 123
[1] => 123
[2] => street
[3] => city
[4] => state
[5] => zip
)
这仅适用于空格。当我有一个逗号时,它不起作用,它会导致一个空数组。
我可以做些什么来包含逗号?
最佳答案
为什么不简单地删除逗号然后使用正则表达式呢?
此外,对于字母数字 zip,您可能需要添加 a-z0-9 以外的其他字符,因为加拿大邮政编码使用空格。
您需要检查的另一件事是街道中是否有空格,例如:
1000 NW One Way Drive
或
100 Rue Des Peupliers
您的正则表达式将不起作用。城市也一样。
使用 API 很好,但您必须获得适用于您需要的国家/地区的 API。如果你想验证所有可能会很痛苦的国家。
ceejayoz 有一个很好的答案,但我认为您应该做的是为您获得的主要国家/地区获取 API,然后对其他所有内容使用正则表达式。
关于php - preg_match php 街道地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700877/
我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge
我想验证一个电子邮件地址是否是PayPal用户。是否有API调用来执行此操作?是否有执行此操作的ruby库?谢谢 最佳答案 GetVerifiedStatus来自PayPal'sAdaptiveAccounts平台会为您做这件事。PayPal没有任何codesamples或SDKs用于Ruby中的自适应帐户,但我确实找到了编写codeforGetVerifiedStatusinRuby的人.您需要更改该代码以检查他们拥有的帐户类型的唯一更改是更改if@xml['accountStatus']!=nilaccount_status
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
对于我的大部分应用程序,我从Geocoder获取城镇/城市的纬度、经度、邮政编码等。我只是投入城市和州,作为返回,我得到了我处于一个有field的场景中。该场所需要一个地址,我正在从另一个来源获取该场所的纬度和经度。使用Geocodergem,我可以通过给地址提供经纬度来获取地址吗? 最佳答案 在Rails控制台中运行。latitude=40.0397longitude=-76.30144geo_localization="#{latitude},#{longitude}"query=Geocoder.search(geo_loca
我想邀请在这样的url中传递电子邮件的人:localhost:3000/invite_me/email@gmail.com我尝试了这个匹配,但它不起作用。match"/invite_me/:email"=>"application#invite_me",:constraints=>{:email=>'/.+@.+\..*/'}我收到以下错误:Noroutematches[GET]"/invite_me/waldyr.ar@gmail.com"rake路由输出:root/application#index/invite_me/:email(.:format)application#inv
我想记录用户的ip地址、referer和用户代理。在PHP中,我可以从以下变量中获取它们:$_SERVER['REMOTE_ADDR']$_SERVER['HTTP_REFERER']$_SERVER['HTTP_USER_AGENT']如何在ruby中获取它们? 最佳答案 PHP嵌入在网络服务器中。Ruby是一种通用语言:如果您需要Web服务器上下文,则必须自己安装。幸运的是,这很容易。最简单的入门方法之一是使用Sinatra。安装gem:geminstallsinatra然后创建myapp.rb:require'sinatr
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我使用PHP的时间太长了,对它感到厌倦了。我也想学习一门新语言。我一直在使用Ruby并且喜欢它。我必须在Rails和Sinatra之间做出选择,那么您会推荐哪一个?Sinatra真的不能用来构建复杂的应用程序,它只能用于简单的应用程序吗?
在我们的Rails应用中,我们有一个ControllerAction,它打开一个外部URL,并将它作为JSON返回给我们的前端使用。今天,我收到以下错误:Errno::EAFNOSUPPORT:协议(protocol)不支持地址族-socket(2)我们的开发人员建议,如果地址同时返回IPv6响应和IPv4响应,这就是错误。我们不支持IPv6,所以这可以解释它。这是触发请求的方法:defmedline_responseopen("http://apps.nlm.nih.gov/medlineplus/services/mpconnect_service.cfm?mainSearchCr
我很确定Ruby有这些(等同于__call、__get和__set),否则find_by将如何在Rails中工作?也许有人可以举一个简单的例子来说明如何定义与find_by相同的方法?谢谢 最佳答案 简而言之你可以映射__调用带有参数的method_missing调用__设置为方法名称以'='结尾的method_missing调用__获取不带任何参数的method_missing调用__调用PHPclassMethodTest{publicfunction__call($name,$arguments){echo"Callingob
使用邮件gem(即Rails+ActionMailer),是否有一种干净的方法来获取收件人的显示名称?我可以通过以下方式获取地址:mail.to.first我可以通过以下方式获取格式化的显示名称+地址:mail.header_fields.select{|f|f.name=="To"}.first.to_s但是我怎样才能得到显示名称部分(即在和>之前)。我知道有人会建议使用正则表达式,但这不是我想要的,因为我随后必须解析任何编码,而这正是Mailgem可能已经做的事情。我是一个流行的PHPMailer库的作者,我知道在之前假设位的缺陷。和>是人类可读的,在标题中,当8位字符开始发挥作用