2

XPaths の結果 (php/domxpath) をクリーンアップする際にいくつか問題があります。通常は Regex を使用してこれを達成しようとしますが、ここで多くの反正規表現の提案に気付いたので、私の問題に対するより良い解決策があるかどうかを尋ねたかったのです。

都市と郵便番号の分離

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)

URL パラメータ:

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

範囲:

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


誰かが構文エラーを発見した場合は、編集してください。ありがとう。

于 2012-12-23T18:32:02.087 に答える