2016-05-01 2 views
1

В настоящее время я работаю над своим собственным движком шаблонов для образовательных целей.Php regex, match if {} символов не указан

Теперь я застрял в этой части, где я хочу, чтобы соответствовать, если строка содержит следующую информацию по, например:

$article.author 

Вот мой регулярное выражение шаблон до сих пор: http://www.phpliveregex.com/p/fx2

Текущая модель соответствует и {$article.author} и $article.author.

Но это должно соответствовать только $article.author.

Любая помощь будет принята с благодарностью, Jumpy.

+0

использовать это: - '^ \ $ [^ \ | {}] * $' – rock321987

ответ

0

Вы должны использовать анкеры для поиска точного соответствия в

^\$[^|{}]*$ 

Regex Demo

PHP код

$re = "/^\\$[^|{}]*$/m"; 
$str = "\$article.author\n{\$article.timestamp}"; 
preg_match_all($re, $str, $matches); 
print_r($matches); 

Ideone Demo

+0

Это работает прекрасно.. Оцените быстрый ответ. –

+0

@JumpyN также вам не нужно скрывать '' 'в классе символов – rock321987

+0

@downvoter оставить комментарий перед downvoting – rock321987