Частичный экстракт регулярного выражения 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' 
  • Использование символа asterix (*) как joker в замене строки python?
  • Отрицательное регулярное выражение до определенного срока
  • эффективный алгоритм для нахождения матрицы совпадений фраз
  • Как создать регулярное выражение из списка слов?
  • Как вы можете распараллеливать регулярный поиск одной длинной строки?
  • Сравнение двух документов с использованием регулярного выражения
  • Regex в Python - Использование групп
  • Преобразование строковых кортежей в dict
  • Python - лучший язык программирования в мире.