У меня следующий пример кода, где я пытаюсь сопоставить все экземпляры слов, которые начинаются с и заканчиваются подчеркиванием (одинарным или двойным).
import re
test = ['abc text_ abc',
'abc _text abc',
'abc text_textUnderscored abc',
'abc :_text abc',
'abc _text_ abc',
'abc __text__ abc',
'abc _text_: abc',
'abc (-_-) abc']
test_str = ' '.join(test)
print(re.compile('(_\\w+\\b)').split(test_str))
Я уже пробовал следующее регулярное выражение, и оно кажется слишком сильным (должно соответствовать только _text_
и __text__
).
Вывод: ['abc text_ abc abc ', '_text', ' abc abc text', '_textUnderscored', ' abc abc :', '_text', ' abc abc ', '_text_', ' abc abc ', '__text__', ' abc abc ', '_text_', ': abc abc (-_-) abc']
Можете ли вы предложить лучший подход (предпочтительно с одним шаблоном регулярных выражений и использованием метода re.split
)?