2016-09-04 4 views
0

У меня есть следующая строкаМатч между «<<» (регулярное выражение)

Все файлы | 100 < < 222 >>

И хотел бы, чтобы соответствовать числу между << >>

Как я могу сделать это?

До сих пор я попытался это выражение (?<<)(.*?)(?>>)

+0

Вы можете попробовать (? <= <<)(.\d+)(?=>>) Это работает для меня. –

ответ

3

Проблема заключается в том, что < это специальный символ, который должен быть экранированы. Кроме того, ? в первой и третьей группе является недействительным:

(\<\<)(?P<number>\d*?)(\>\>) 

Кроме того, я назвал группу с номером и используется \d, чтобы соответствовать цифрам вместо *. Я протестировал его here.

+0

Спасибо, что сработали – lasante23

+0

Вы находитесь на точное решение +1. –

1

Попробуйте это,

In [1]: match = re.compile(r'<<(\d+)>>') 
In [2]: match.findall('100 <<222>>') 
Out[2]: ['222'] 

Regex модель

<<(\d+)>> 

Regular expression visualization

Demo

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