Найти совпадение, но оно не должно входить в диапазон между знаками

RedRabbit

Мой дом здесь!
Регистрация
11 Июл 2008
Сообщения
607
Реакции
256
Здравствуйте, не пойму как составить регулярное выражение. Нужно найти совпадение, но оно не должно входить в диапазон между символами {}. Мне нужно найти Hello, но оно не должно находиться в пределах {..произвольный текст..}
Найти: Hello
Текст:
{Hello world} Hello Mark! {bred Hello Tod} Bred Bred {bred bred Hello Silvia}
 
Последнее редактирование:
Хм. Но данное регулярное выражение находит не только Hello , но символы рядом с Hello. Пробелы и другие знаки :(

Код:
{Hello world} Hello Mark! {Hello Tod} Bred Bred {Hello Silvia}
Код:
(?i)[^{](hello mark)[^}]
Код:
 Hello Mark!

Тестировал в ZennoPoster
 
[14-19] `Hello` нет только hello. Ты посмотри что в переменной print_r($result); Наверняка в $result[1] находится то что тебе надо.
 
Здравствуйте, не пойму как составить регулярное выражение. Нужно найти совпадение, но оно не должно входить в диапазон между символами {}. Мне нужно найти Hello, но оно не должно находиться в пределах {..произвольный текст..}
Найти: Hello
Текст:
{Hello world} Hello Mark! {bred Hello Tod} Bred Bred {bred bred Hello Silvia}
Пропускать содержимое {...} можно например так
Для просмотра ссылки Войди или Зарегистрируйся
 
Все бы хорошо, но не находит вообще:(
Может использовать не pcrePHP, а JavaScript, там я уж как-нибудь выкручусь:)

Код:
var    str = "{Hello world} Hello Mark! {bred Hello Tod} Hello Bred Bred {bred bred Hello Silvia}";
var res = str.replace(/\G(?:[^{H]+|\{.*?\}|(?!hello).)+.\Khello/i, "XXX");
 
Все бы хорошо, но не находит вообще:(
А можно глянуть код который используете для поиска. Может в регулярке недостает скобок вокруг последнего \K(hello).

Конструкция str.replace(/\G(?:[^{H]+|\{.*?\}|(?!hello).)+.\Khello/i, "XXX") не сработает т.к. в JavaScript нет метасимовов \G \K.
 
Да нету кода:) Это ZennoPoster
Но там можно использовать JavaScript, а какой язык использует ZennoPoster при замене или поиске с рег. выражениями я до сих пор не пойму. NET наверное:)
 
Последнее редактирование:
если такое сработало более менее
Код:
(?i)[^{](hello mark)[^}]
попробуй добавить в [^] неугодные символы.
Код:
(?i)[^{\s]hello mark[^\s!}]
 
Назад
Сверху