2013-07-22 9 views
0

Я хотел выполнить регулярное выражение в php. Из переменной $ str я хочу выбрать common_name = Бангладеш. Я носил свое регулярное выражение. Регулярное выражение не встречается здесь. Как я могу это исправить?php regex найти строку между двумя строками

$str = "| conventional_long_name = People's Republic of Bangladesh | common_name = Bangladesh | image_flag = Flag of Bangladesh.svg"; 
    $pat = "/(?=\common_name\s=).*?(?=\s\|)/"; 

    if(preg_match($pat, $str, $matches)){ 
     echo "Matches found"; 
     echo $matches[0]; 
    } else { 
     echo "No match found"; 
    } 

результат показывает

No match found 
+1

Вы должны научиться читать и сообщения об ошибках отладки. Все, что вам нужно для решения проблемы, было в сообщении. http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php – Anigel

ответ

3

Вы пропустили точку с запятой ; на первой линии

2

Вам нужно поставить ; в конце $str = "...."

0

Вы упускаете точкой с запятой в конце вашей первой строки:

Измените его на:

$str = "| conventional_long_name = People's Republic of Bangladesh | common_name = Bangladesh | image_flag = Flag of Bangladesh.svg"; 

Кроме того, получить приличный IDE и сохранить себя неприятности задавать этот вопрос на так каждый раз! :)

0

Вы, вероятно, отсутствует точка с запятой на 1-й строки кода

$str = "| conventional_long_name = People's Republic of Bangladesh | common_name = Bangladesh | image_flag = Flag of Bangladesh.svg"; 
     $pat = "/(?=\common_name\s=).*?(?=\s\|)/"; 

     if(preg_match($pat, $str, $matches)){ 
      echo "Matches found"; 
      echo $matches[0]; 
     } else { 
      echo "No match found"; 
     }