真的很困惑,得到了一堆我需要处理的地址,我有一个地址行然后是一个邮政编码
数据格式为:
ASHLEY CLOSE, HAVEN, BH1
我需要能够获得ASHLEY CLOSE, HAVEN
然后BH1
。
我认为它会是这样的:
/^([A-Z ,]+)(?!, BH)/
答案 0 :(得分:2)
这是非常基本示例:
/(.+,) (BH.+)/gm
# match anything with one or more characters until a comma
# capture any number of these groups until you meet your BH block
# capture BH and the following character
演示:http://regex101.com/r/xC0jB0
修改
A better way不是专门针对“BH ......”而是要匹配字符串末尾的组:
/^(.+,) (.+)$/gm
答案 1 :(得分:1)
关于红宝石:
"ASHLEY CLOSE, HAVEN, BH1" =~ /^([A-| ,]+), ([A-Z0-9]+)/
=> 0
> puts $1
ASHLEY CLOSE, HAVEN
=> nil
> puts $2
BH1
我认为你不需要高级正则表达式。