2013-05-20 57 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() did not give pattern as array

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

您的問題是這部分:[\\\\/]

\\\\編碼單個文字反斜槓。因此,以下/不會被轉義,結束正則表達式 - 並告訴正則表達式編譯器將]解釋爲模式修飾符。

如果您想匹配反斜槓和斜線,則使用[\\\\\/];如果您只想匹配斜槓,則使用\/

相關問題