Частичный экстракт регулярного выражения Python

Я хочу найти все данные, заключенные в [[ ]] этих скобках.

[[aaaaa]] -> aaaaa

Мой код python (с использованием re library) был

 la = re.findall(r'\[\[(.*?)\]\]', fa.read()) 

Что делать, если я хочу извлечь только «a» из [[a|b]]

Какое-либо краткое регулярное выражение для этой задачи? (извлечь данные до | )

Или я должен использовать дополнительный оператор if?

One Solution collect form web for “Частичный экстракт регулярного выражения Python”

Можешь попробовать:

 r'\[\[([^\]|]*)(?=.*\]\])' 

([^\]|]*) будет соответствовать до | или ] . И (?=.*\]\]) – это просмотр, чтобы убедиться, что ]] соответствует RHS соответствия.

Тестирование:

 >>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaa|bbb]]' ).group(1) 'aaa' >>> re.search( r'\[\[([^\]|]*)(?=.*\]\])', '[[aaabbb]]' ).group(1) 'aaabbb' 
  • Как проверить, является ли строка допустимым регулярным выражением - python?
  • Python regex, удалите все знаки препинания, кроме дефиса для строки unicode
  • Как тайм-аут функции в python, тайм-аут меньше секунды
  • Python String Cleanup + Manipulation (Акцентированные символы)
  • Удалить Sub String с помощью Python
  • Преобразование строковых кортежей в dict
  • Регулярное выражение для подтверждения того, является ли строка допустимым идентификатором в Python
  • Почему re.groups () не дает мне ничего?
  • Как объединить последовательность одинаковых символов в одну?
  • Python regex \ w не соответствует сочетанию диакритики?
  • Совместить любое письмо в Юникоде?
  • Python - лучший язык программирования в мире.