Проверка символов перед строкой на совпадение - PullRequest
0 голосов
/ 16 апреля 2020

Я возвращаю строки в файле, который содержит строку «bin go». Тем не менее, я хотел бы исключить строки, которые содержат «//» в любом месте перед «bin go» в строке, потому что это означает, что это комментарий. Я думаю сделать это путем разбиения строки и поиска частей до части, содержащей в них «bin go» для «//», но я не уверен, как это сделать.

 for line in file:
    if re.search("bingo", line):
      for parts in line.split():
        if parts eq "bingo":
          #not sure how to do this 

1 Ответ

0 голосов
/ 16 апреля 2020

Вы можете удалить комментарий перед поиском. Чтобы удалить комментарий, вы можете нарезать строку по индексу первого вхождения '//', который вы можете получить с помощью метода str.find. Этот метод возвращает -1, когда совпадений нет, но он не должен быть последовательным в вашем случае, так как он служит для отсечения завершающего символа новой строки, который не нужен для поиска:

for line in file:
    if 'bingo' in line[:line.find('//')]:
        # code that handles the match
...