이 정규식에 문제가 있습니다. (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
이 코드를 얻을 수 없기 때문에 내 문제는 내가 확신은 역 슬래시 함께 브래킷을 벗어날 필요가있는 부분의 패턴. 나는 다른 많은 패턴을 사용하고 있기 때문에 코드가 작동한다는 것을 알고있다. 나는 탈출 브래킷 제대로 패턴을 저장하고, 그래서
$this->rex["property"][2] = '/(?<=Property:)(.*?)(?= -)/s
을, 심지어는 내 문제가 있다는 것입니다 : 패턴이 다음과 같이 저장되어있는 경우이이 건물의 텍스트를 작동? 미리 감사드립니다!
"연락처"를 캡처하거나 일치시키기 위해 사용하려는 경우 명확하게 설명 할 수 있습니까? –
그냥 일치 - 나는 속성을 따라'(Contact')를 가질 것이다. – Warren
죄송합니다. 찾고있는 최종 결과를 이해하려고합니다.이 편집기에서 예제 코드를 래핑했습니다 : http : //sandbox.onlinephpfunctions. com/code/6a566fb5a0c6789d75a5fca24e4a6518cb1af561. print_r을 출력 할 때 예상되는 답변으로 업데이트하십시오. –