Вообще говоря, вы можете пометить метод как устаревший, чтобы предупредить пользователей о коде, который не будет работать в будущих версиях. Я думаю, что лучше всего использовать trigger_error вместе с некоторым phpdoc .
/**
* @deprecated
*
* @return $this
*/
public function oldMethod()
{
trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
return $this;
}
phpdoc @deprecated
важен, потому что многие IDE, такие как PHPStorm , распознают его и вводят имя метода, если вы пытаетесь его использовать, поэтому вы замечаете, что он устарел, прежде чем фактически запускать ваш код.
Это будет выглядеть примерно так:
Помимо phpdoc, вы можете убедиться, что пользователь получит предупреждение, вызвав правильная ошибка во время выполнения. Просто убедитесь, что вы используете правильную константу (т. Е. E_USER_DEPRECATED
).
E_DEPRECATED
вместо этого используется внутри PHP, поэтому вы не должны его использовать. Больше информации здесь .
Это должно сработать:
(?<!<[^>]*)_mystring_
Он использует отрицательный поиск, чтобы проверить, что перед совпадающей строкой нет символа <без соответствующего>
Зачем использовать регулярное выражение?
Для xhtml загрузите его в XDocument / XmlDocument; для (не x) html пакет Html Agility Pack может показаться более разумным выбором ...
В любом случае, это будет анализировать HTML в DOM, чтобы вы могли перебирать узлы и проверять их.
Regular expression searches are typically not a good idea in XML. It's too easy to run into problems with search expressions matching to much or too little. It's also almost impossible to formulate a regex that can correctly identify and handle CDATA sections, processing instructions (PIs), and escape sequences that XML allows.
Unless you have complete control over the XML content you're getting and can guarantee it won't include such constructs (and won't change) I would advise to use an XML parser of some kind (XDocument or XmlDocument in .net, for instance).
Having said that, if you're still intent on using regex as your search mechanism, something like the following should work using the RegEx class in .NET. You may want to test it out with some of your own test cases at a site like Regexlib. You may also be able to search their regular expression catalog to find something that might fit your needs.
[>]. (_ mystring _). [<]
Игнорируя, что есть другие способы, и что я не настоящий эксперт по регулярным выражениям, но одна вещь, которая Мне пришло в голову следующее:
Итак, используя <[^>] *? (mystring) [^>] *>
вы можете найти помеченные. Замените их на otherstring . Вы обычно заменяете оставшиеся mystring s. Заменить otherstring обратно на mystring
Грубый, но эффективный .... возможно.