Я пытаюсь сделать некоторые PHP preg. Но, похоже, я не могу заставить его соответствовать, если я хочу строку без чего-то в ней.
Пример:
Hello! My name is [b]Peter Jack[/b]
Если Питер Джек найден с его фамилией, он НЕ будет соответствовать, но если его обнаружит «[b] Peter [/ b]», он будет соответствовать.
Любой, кто я плохо разбираюсь в вещах, комментируйте, если есть что-то еще, что вам нужно, чтобы помочь мне решить эту проблему.
Еще один способ, о котором я могу сказать, – это, если бы я получил ссылку на веб-сайт, он будет соответствовать и делать материал в preg_replace, но если ссылка на сайт заканчивается на .png (изображение), это не будет соответствовать и не будет делать ссылку.
example.com/image.png
Не будет соответствовать, потому что он содержит .png
example.com/image
Будет соответствовать, потому что он не содержит .png
Непонятно, что вы хотите найти. Если это просто [b]Peter[/b]
, вам не нужно регулярное выражение.
Если вы хотите найти одно слово, окруженное живыми тегами BBCode, используйте
preg_match('%\[b\]\w*\[/b\]%', $subject)
Если вы хотите найти что-либо в ярлыках BBode bold, если он не содержит Jack
, используйте
preg_match( '%\[b\] # Match [b] (?: # Try to match... (?!Jack) # (unless the word "Jack" occurs there) . # any character )*? # any number of times, as few as possible \[/b\] # Match [/b]%x', $subject)