これは私の最初の質問ですので素敵です:)私はregexpを構築して、RFC 1918に従ったプライベートIPではなく、有効な(適切なIPv4形式で)少なくとも有効なIP配列を取得しようとしています。これまでのところ、私はちょうど反対、私はsucccssfulyプライベートIPに一致することを意味するので、私が必要とするものは、アサーションを元に戻す方法です。これは、これまでのコードです:PHP RegExp逆アセンブルを逆にするには
// This is an example string
$ips = '10.0.1.23, 192.168.1.2, 172.24.2.189, 200.52.85.20, 200.44.85.20';
preg_match_all('/(?:10\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])|192\.168)\.\d{1,3}\.\d{1,3}/', $ips, $matches);
print_r($matches);
// Prints:
Array
(
[0] => Array
(
[0] => 10.0.1.23
[1] => 192.168.1.2
[2] => 172.24.2.189
)
)
そして、何私が結果として必要がある:
Array
(
[0] => Array
(
[0] => 200.52.85.20
[1] => 200.44.85.20
)
)
私は(陰性であることを表現(先読み)の最初の部分を変更しようとしました?! )しかし、これは結果を混乱させ、結果を切り替えることさえしない。
これ以上の情報提供が必要な場合は、お気軽にお気軽にお問い合わせください。
最初の非キャプチャグループの正規表現にparanthesisがありませんか? –
慎重に見れば、[01]と[168]という2つの閉じ括弧があります。 – Proteo
あなたは私のためにコードを掲示し、あなたの質問を明確に述べるためだけに+1を得る。これは見た目よりも丈夫です。私は、文字列を分割し、各IPを個別にチェックするソリューションを考え出しました。質問に対する正確な答えではありません。あなたが私にそれを投稿してもらいたいかどうか知らせてください。 – Cfreak