В последующих к моей предыдущей question, я хочу, чтобы заменить каждый экземпляр все-CAPS * слово со ссылкой на следующий формат:preg_replace не заменяя в Wordpress плагин
dictionary.com/browse/<TERM>
preg_replace
вызов Я использую это:
$content = preg_replace('#[A-Z][A-Z]+#', '<a href="//dictionary.com/browse/$1">$1</a>', $content);
Использование http://gskinner.com/RegExr, кажется, у меня есть регулярное выражение правильно, и что он должен заменять на каждое ребро д.
Я сделал что-то не так, как в вызове preg_replace
, так и в процессе регистрации плагина/фильтра в Wordpress API?
Полный контекст вызова:
function define_filter($content){
$content = preg_replace('#[A-Z][A-Z]+#', '<a href="//dictionary.com/browse/$1">$1</a>', $content);
}
add_filter('the_content', 'define_filter');
* Я использую синтаксис [A-Z][A-Z]+
, чтобы гарантировать, что я не совпадают слова, как "я" и "А"
Добавления '\ b' помогли ... теперь он заменяет ссылку, но не добавляет форму' $ 1' в соответствие .. какие-либо дальнейшие мысли? – warren
Я этого не заметил: вам нужно '$ 0' (целое совпадение), а не' $ 1' (первая группа захвата, которой не существует ваше регулярное выражение). –
вот что я искал! Спасибо, Алан – warren