2013-03-07 2 views
1
$string = ' prepending string ... "{something wrapped with " quotes } inside of braces}" appending string...'; 
$string .= '"{something "similar again{}}"'; 

Мне нужно, чтобы соответствовать ломтикам обернуты '"{*}"' в этой строке с preg_match и не могу найти гуманные.preg_replace матч за исключением строки

Это легко для меня, чтобы соответствовать одному знаку разрыва следующим образом: '/([^"]+)/', но его не полезно для строки из двух знаков. Например, это не работает: '/"\{([^(\}")]+)\}"/'.

Можно ли совместить все эти кусочки, обернутые парами знаков в строке?

ответ

0

Я думаю, что вы хотите использовать ungreedy образец здесь:

$pattern = '/"\{(.*)\}"/U'; 

Неясно мне, нужно ли проверить, что " или {} существуют в пределах внешней "{*}" конструкции для того, чтобы матч, который состоится , Если да, дайте мне знать, и я пересмотрю ответ.

+0

Большое спасибо, это то, что мне нужно. Я не знал о непримиримом переключателе. – palmic

Смежные вопросы