2015-11-12 2 views
1

У меня есть следующие строки кода:line.strip между комментарием и переменной

if line.lstrip().startswith('#%s' % debug_variable): 

Это делает хороший матч на следующую строку в файле:

#debug true 

То, что я пытаюсь сделать, это найти способ согласования в следующих случаях:

# key true 
# key true 
#<tab>key true 

т.е. любое количество пространства между комментарием (#) и ключ

Так, по существу, мне нужно регулярное выражение, чтобы действовать между # и моим% S переменной

Я пробовал такие вещи, как следующее:

if line.lstrip().startswith('#\w%s' % debug_variable): 

Но не получает много удачи.

ответ

2

Если вы хотите пойти с регулярным выражением, то startswith не требуется.

if re.match(r'#\s*' + debug_variable, line): 

или

if re.match(r'#[ \t]*' + debug_variable, line): 

re.match Обратите внимание, что пытается соответствовать с начала строки так, начало линии якоря ^ не было необходимостью.

+0

Искренне благодарим Авинаш, это работает очень хорошо. – devnull

+0

Рад, что все получилось .. –

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