2013-05-20 2 views
-2
 $p5p6patterns = array(
      "/(\d{2,3}(?:[\.,]\d)?)[\\\\/](\d{2,2}(?:[\.,]\d)?)\D/ui", //62.2/43.2 43/34 34\23 
      "/(\d{2,3}(?:[\.,] ?\d)?)[\\\\/](\d{2,2}(?:[\.,] ?\d)?)\D/ui", // 51, 2/30, 5/11, 8 
      "/\D(\d{2,3}(?:[\.,]\d)?) ?[\\\\/] ?(\d{2,2}(?:[\.,]\d)?)\D/ui", //62.2/43.2/7.4 
      "/Общая\sплощадь\s\-\s(\d{1,2}(?:[\.,]?\d)?)\sкв\.м\.\sжилая\s\-\s(\d{1,2}(?:[\.,]?\d)?)\sкв\.м\./ui"// Общая площадь - 74.6 кв.м. жилая - 29.8 кв.м. 
     ); 

경고 :으로, preg_match_all() : 알 개질제']PHP 정규 표현식 경고 :으로, preg_match_all() : 알 개질제 ']

+0

\\\\ /] 너무 많이 벗어남 – migg

+0

@migg : 아니면 충분히 벗어나지 못합니다. –

+0

@TimPietzcker 예 ... 우리는 결코 알 수 없습니다;) – migg

답변

0

시험이 \\\\/]

$p5p6patterns = array(
     "/(\d{2,3}(?:[\.,]\d)?)[\\\\\/](\d{2,2}(?:[\.,]\d)?)\D/ui", //62.2/43.2 43/34 34\23 
     "/(\d{2,3}(?:[\.,] ?\d)?)[\\\\\/](\d{2,2}(?:[\.,] ?\d)?)\D/ui", // 51, 2/30, 5/11, 8 
     "/\D(\d{2,3}(?:[\.,]\d)?) ?[\\\\\/] ?(\d{2,2}(?:[\.,]\d)?)\D/ui", //62.2/43.2/7.4 
     "/Общая\sплощадь\s\-\s(\d{1,2}(?:[\.,]?\d)?)\sкв\.м\.\sжилая\s\-\s(\d{1,2}(?:[\.,]?\d)?)\sкв\.м\./ui"// Общая площадь - 74.6 кв.м. жилая - 29.8 кв.м. 
    ); 
대신 \\\\\/] 넣어

preg_match_all() 배열로 패턴을 지정하지 않았습니다.

int preg_match_all (string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]]) 
0

이 부분은 문제의 대상입니다. [\\\\/]

\\\\은 단일 리터럴 백 슬래시를 인코딩합니다. 따라서 다음 /은 이스케이프 처리되지 않으므로 정규 표현식이 끝나고 ]을 모드 수식어로 해석하도록 정규식 컴파일러에 알립니다.

역 슬래시와 슬래시를 모두 일치 시키려면 [\\\\\/]을 사용하고 슬래시를 일치 시키려면 \/을 사용하십시오.