正则表达式提取英国邮政编码的第一个字母

时间:2013-07-25 09:02:28

标签: php regex

我想使用正则表达式从英国邮政编码中提取区号。例如,这将从“SW11 1AW”中删除“SW”。该区域始终是字符串的第一个字符,后跟一个数字。我不能只提取前两个字符,因为有时只有一个字母,例如“E1 4PN”。所以它只需要从字符串的开头匹配A-Z,直到它到达一个数字并返回字母。为了参数,字符串将始终为大写。

感谢。

3 个答案:

答案 0 :(得分:1)

(假设PHP)

$letters = preg_replace('#^([a-z]+).*#i','$1',$postcode);

答案 1 :(得分:1)

在红宝石中,这看起来像:

postcode = 'SW11 1AW'
postcode[/^[a-z]+/i] # get the area code
#=> "SW"
postcode[/^[a-z]+(.*)/i,1] # get the rest
#=> "11 1AW"

注意:设置了i标志(忽略大小写)。所以,大写和小写字母都有效。

答案 2 :(得分:0)

^(?i)[a-z]+(?=\d)

如果有两个或第一个字母,如果只有一个字母在数字之前,将会找到前两个字母,无论情况如何。