string = "(KEY)anything (KEY)anything (A)anything (KEY)anything";
результат должен бытьКак заменить строку с использованием регулярных выражений
string = "<p>anything</p> <p>anything</p> (A)anything <p>anything</p>";
string = "(KEY)anything (KEY)anything (A)anything (KEY)anything";
результат должен бытьКак заменить строку с использованием регулярных выражений
string = "<p>anything</p> <p>anything</p> (A)anything <p>anything</p>";
Заменить \(KEY\)(\w+)
с <p>$1</p>
, или любой другой эквивалент PHP обозначения.
Предполагается, что границы являются границами слов (ничего, кроме 0-9A-Za-z_).
Вы должны поместить \\ (KEY \\) (\ w +) – faressoft
@faressoft - ')' не требует экранирования, за исключением случаев, когда предшествует unescaped '('. Уменьшение числа \ является хорошим, особенно когда им требуется двойное экранирование в строковых литералах. – OrangeDog
Это вообще не так. Python, например, будет жаловаться на несбалансированную скобку. –
$result = preg_replace('/\(KEY\)(\w+)/', '<p>\1</p>', $subject);
будет работать на вашем примере.
Если anything
может быть больше, чем одно слово, и определяется как «что-либо после того, как (KEY)
и до следующего открывающую скобку», то вы можете использовать
$result = preg_replace('/\(KEY\)([^(]+)/', '<p>\1</p>', $subject);
Отъезд preg_replace (http://php.net /manual/en/function.preg-replace.php)
$pattern = '\(KEY\)(\w+)\s';
$replacement = '<p>$1</p>';
$string = preg_replace($pattern,$replacement,$string);
Нечто подобное должно работать.
Если вы не знаете, как начать, здесь отличный учебник по регулярным выражениям:
Learning Regular Expressions
Есть также хороший (и бесплатно) инструменты, чтобы помочь вам их крафта:
https://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the-open-source-world
Что вы пробовали? Потому что, как сейчас, вы просите нас написать свой код для вас. –
Мне просто нужен синтаксис Regex – faressoft
Является ли исходная строка действительно html? Если да, рассмотрите синтаксический анализатор html. – marcog