2012-02-05 4 views
1

Я новичок в Python Regex и regex не мой сильный набор. поэтому У меня есть текстовая строка, например. «ленивым коричневая лиса„прыжок“над [txt_1234]» следующую строку «небо падает»python re.search pattern с квадратными скобками и текстом

вторая линия поэтому никто.

его, как я его пишу.

  1. Мне нужно извлечь только часть txt_1234. нет брекета
  2. Кроме того, результат должен начинаться с текстовыми другими «[]», если присутствуют следует игнорировать
  3. Если [txt_ * нет, то не должно быть ни один конечно Похоже, я бы с помощью поиска вместо матча.

звучит легко, я знаю, я просто не могу понять это правильно.

+0

Я пытался (? <= \ [) \ Ш + (? = \]), Но при попытке убедиться, что txt_ я включен я не получал ничего. – Vangel

+0

', но при попытке убедиться, что txt_ i включен, я не получал ни одного. Можете ли вы опубликовать точный код, который вы пробовали? Это поможет мне увидеть, где ваша ошибка, если бы я мог видеть ваш код. –

+0

ok Я думаю, что это работает (? <= \ [) Txt _. \ W +? (? = \]), Проверяя, не игнорирует ли он txt_ . Я помещал txt_ в мое регулярное выражение. edit: yes that works. Я полагаю, что alex может исправить его регулярное выражение, чтобы исключить брекеты. – Vangel

ответ

4

Ваше регулярное выражение будет ...

\[(txt_.*?)\] 
+0

да это работает. Благодарю. Как получить значение совпадения. Изменить: ok получил его с группой (0), однако он включает в себя «[]», который я хотел бы выразить. – Vangel

+0

Я добавил свой собственный тест выше (? <= \ [) \ W +? (? = \]), Это исключает брекеты, но мне нужно убедиться, что txt_ является актуальным. – Vangel

+0

@Vangel Использовать регулярное выражение, которое я предоставил, он гарантирует, что 'txt_' присутствует внутри скобок. – alex

Смежные вопросы