2

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

区分城市和邮政编码

Xpath 提供“10021 纽约市”。邮编和城市有所不同。我将如何最好地拆分这些?

从 URL 中提取信息

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

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

Xpath 提供“总尺寸可能为 3130 平方英尺或更多”。唯一一致的模式是数字后跟 ft²。

4

2 回答 2

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];
} 
于 2012-12-23T18:31:00.887 回答
1

我不会说 php,但这里有一个尝试:

城市/邮编:

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

网址参数:

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

区域:

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


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

于 2012-12-23T18:32:02.087 回答