Как проверить, находится ли определенная часть строки в наборе строк в Python? - PullRequest
0 голосов
/ 07 марта 2020

Если у меня есть список строк

set1 = ['\\land','\\lor','\\implies']

Я хочу просмотреть список строк и проверить, содержит ли какая-либо из строк заданные в них элементы.

Строка '\land' вернул бы значение true для нахождения в set1

Однако как я могу проверить, находится ли '(\lor' в set1?

1 Ответ

1 голос
/ 07 марта 2020

Посмотрите, работает ли это для вас:

import re

set1 = ['\\land','\\lor','\\implies']
strings = ['\land', '(\lor']

r = re.compile('|'.join([re.escape(w) for w in set1]), flags=re.I)

for i in strings:
    print(r.findall(i))

Вывод этого

['\\land']
['\\lor']

**** Модификация - если есть одна строка **

import re

set1 = ['\\land','\\lor','\\implies']
strings = '(\lor'

r = re.compile('|'.join([re.escape(w) for w in set1]), flags=re.I)

print(r.findall(strings))

** если вы просто хотите, чтобы специальный символ "(" отсутствовал "(\ lor", мы могли бы сделать это следующим образом:

>>> a = '(\lor'
>>> a.split('(')[1]
'\\lor'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...