#python #regex
#python #Регулярное выражение
Вопрос:
Я пробовал предыдущие ответы здесь на SO. Я смог найти только одно подмножество из нескольких.
вот код и пример, над которыми я работаю.
s = "{| mySting0 |} The {| mySting1 |} The {| mySting2 |} The {| mySting3 |} make it work "
result = re.findall('{|(.*)|}', s)
вывод,
[' mySting0 |} The {| mySting1 |} The {| mySting2 |} The {| mySting3 |} make it work ']
Что я делаю не так?
Комментарии:
1. » Что я делаю не так? » — использование жадного регулярного выражения, не экранируя второй символ канала обратной косой чертой.
Ответ №1:
Вы можете использовать это регулярное выражение:
>>> s = "{| mySting0 |} The {| mySting1 |} The {| mySting2 |} The {| mySting3 |} make it work "
>>> re.findall(r'{|(.*?)|}', s)
[' mySting0 ', ' mySting1 ', ' mySting2 ', ' mySting3 ']
Изменения:
- Используйте ленивый квантификатор
.*?
вместо жадного.*
|
Также выделите 2-е в вашем регулярном выражении