2013-05-20 59 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

您的问题是这部分:[\\\\/]

\\\\编码单个文字反斜杠。因此,以下/不会被转义,结束正则表达式 - 并告诉正则表达式编译器将]解释为模式修饰符。

如果您想匹配反斜杠和斜线,则使用[\\\\\/];如果您只想匹配斜杠,则使用\/

相关问题