この正規表現に問題があります。 (https://regex101.com/r/vQLlyY/1)preg_matchスラッシュを変数に格納したパターン
私のパターンが動作しているされています
あなたは、プロパティテキストは両方のこれらの文字列に抽出されていることをリンクに表示されます(?<=Property:)(.*?)(?= \(Contact)|(?<=Property:)(.*?)(?= -)
:私は
Property: This is the property (Contact - Warren)
Property: This is another property - Warren
このパターンは次のように格納されます。
$this->rex["property"][2] = '/(?<=Property:)(.*?)(?= \(Contact)|(?<=Property:)(.*?)(?= -)/s'
はその後、それがこのように抽出されます。この例では
foreach ($this->rex as $key => $value) {
if (isset($value[$provider])) {
preg_match_all($value[$provider], $emailtext, $matches);
if (!empty($matches[1][0])) {
$emaildetails[$key] = trim(preg_replace("/\r|\n/", "", $matches[1][0]));
} else {
$emaildetails[$key] = "";
}
}
}
、$プロバイダ= 2
私がピックアップ(Contact
にこのコードを取得することはできませんので、私の問題、私は確信しているがblackslashであります私がブラケットをエスケープする必要があるパターンの一部。他の多くのパターンが使用されているため、コードが動作することがわかります。また、パターンは次のように格納されている場合、このプロパティのテキストのために働く:だから
$this->rex["property"][2] = '/(?<=Property:)(.*?)(?= -)/s
、私はエスケープブラケットで正しくパターンを保存する、あるいは私の問題ということであるのですか?前もって感謝します!
"連絡先"をキャプチャするか、それとも単にマッチングのために使用するかを明確にすることはできますか? –
ちょうど一致する - 私は、プロパティの後に '(Contact')を持っています。 – Warren
あなたが探している最終結果を理解しようとしています。このサンプルコードをこのエディタでラップしました:http://sandbox.onlinephpfunctions。 com/code/6a566fb5a0c6789d75a5fca24e4a6518cb1af561。print_rが出力すると思われるものであなたの答えを更新してください。 –