正規表現は私の得意分野ではなく、この状況で少し苦労しています。
次の文字列があります。
locale (district - town) [parish]
次の情報を抽出する必要があります: 1 - ロケール 2 - 地区 3 - 町
そして、私はこれらの解決策を持っています:
1 - ロケール
preg_match("/([^(]*)\s/", $input_line, $output_array);
2 - 地区
preg_match("/.*\(([^-]*)\s/", $input_line, $output_array);
3 - 町
preg_match("/.*\-\s([^)]*)/", $input_line, $output_array);
そして、これらはうまくいくようです。ただし、文字列は次のいずれかのように表示される場合があります。
localeA(localeB) (district - town) [parish]
locale (district - townA(townB)) [parish]
locale (district - townA-townB) [parish]
ロケールには、独自の括弧を含めることもできます。タウンには、括弧および/または独自のハイフンを含めることができます。
これにより、適切な情報を抽出することが困難になります。上記の 3 つのシナリオでは、以下を抽出する必要があります。
localeA(localeB) + 地区 + 町
ロケール + 地区 + 町 A(町 B)
ロケール + 地区 + 町 A-町 B
これらすべてのシナリオに対処するのは難しいと思います。あなたは私を助けることができます?
前もって感謝します