我在清理XPaths结果时遇到了一些问题(php / domxpath)。通常我会尝试使用Regex实现这一点,但我注意到这里有很多反正则表达式的建议,所以我想问一下我的问题是否有更好的解决方案。
Xpath提供“10021纽约市”。邮编和城市各不相同。我怎么能最好地拆分这些?
Xpath提供“http://www.whatever.com/?k=5000+z=6000”。我怎样才能最好地提取“k = 500 + z = 600”?
Xpath提供“总大小可能是3130ft²或更多”。只有一致的模式是数字,后跟ft²。
答案 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)
如果有人发现语法错误,请编辑。感谢。