如何解析这些字符串

时间:2012-12-23 17:40:11

标签: php regex parsing

我在清理XPaths结果时遇到了一些问题(php / domxpath)。通常我会尝试使用Regex实现这一点,但我注意到这里有很多反正则表达式的建议,所以我想问一下我的问题是否有更好的解决方案。

分隔城市和邮政编码

Xpath提供“10021纽约市”。邮编和城市各不相同。我怎么能最好地拆分这些?

从网址中提取信息

Xpath提供“http://www.whatever.com/?k=5000+z=6000”。我怎样才能最好地提取“k = 500 + z = 600”?

从较长的文本段中提取信息

Xpath提供“总大小可能是3130ft²或更多”。只有一致的模式是数字,后跟ft²。

2 个答案:

答案 0 :(得分:1)

1

if (preg_match('/(\d+) (.*)/', $subject, $regs)) {
    $zip = $regs[1];
    $city = $regs[2];
}

2

if (preg_match('/[^?]*$/', $subject, $regs)) {
    $size= $regs[0];
} 

(虽然你应该使用URL解析器,实际上)

3

if (preg_match('/\d+(?=ft²)/', $subject, $regs)) {
    $result = $regs[0];
} 

答案 1 :(得分:1)

我不会说php,但这是一次尝试:

城市/ ZIP:

zip = preg_replace ( '/.*(\d+).*/', '$1' , zipAndCity)
city = preg_replace ( '/\d+/', '' , zipAndCity)

url params:

params = preg_replace ( '/.*\?/', '' , url)

区:

area = preg_replace ( '/.*(\d+ft.*?(?= ))/', '$1' , areaDesc)


如果有人发现语法错误,请编辑。感谢。