Функция регулярного выражения с итеративным значением - PullRequest
0 голосов
/ 11 февраля 2020

Итак, у меня есть file, и мне нужно проверить, есть ли определенные слова из моего ди c Count в определенных строках файла.

Сначала я попробовал if Count[j+1] in file[i]:, и это не сработало, потому что, например, слово a из словаря будет вызываться везде, и т. Д. c.

for i in range(lines_number):    
    for j in range(len(Count)):
        words_counter = 0
        if Count[j+1] in file[i]:
            words_counter += 1  

Итак, я попытался go с регулярами, но я не знаю, как поместить Count[j+1] в регулярное выражение.

for i in range(lines_number):    
    for j in range(len(Count)):
        words_counter = 0
        if len(re.findall(r '\b Count[j+1] \b', file[i]) > 0:
            words_counter += 1  

Пример предложения :

В одном люди сознательно приручали кошек в процессе искусственного отбора, поскольку они были полезными хищниками паразитов.

Слова от ди c пример:

кошка, а,

1 Ответ

2 голосов
/ 11 февраля 2020

В подобных случаях следует использовать Литеральная строковая интерполяция . Таким образом, ваш код будет выглядеть так:

for i in range(lines_number):    
    for j in range(len(Count)):
        words_counter = 0
        if len(re.findall(rf"\b {Count[j+1]} \b", file[i]) > 0:
            words_counter += 1  

Это позволяет вам вызывать переменные / запросы в середине r'' строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...