Ich bin neu in Python (mit Python3.6). Ich möchte eine 1 erhalten, wenn eine oder mehrere Zeichenfolgen in einer TXT-Datei gelesen werden. Insbesondere habe ich die "read.txt" -Datei, von der ich eine 1 in meiner neuen Liste "Ausnahmen" erhalten möchte, wenn 1 oder mehr Zeichenfolgen in dieser Datei erfüllt sind. Ich habe den folgenden Code:python3 reguläre Ausdrücke auf der Suche nach 1 oder mehr Zeichenfolgen
string1 = 'first sentence I want to check it exists in the read.txt file'
string2 = 'another sentence I want to check it exists in the read.txt file'
exemptions = []
with open('read.txt') as f:
line2 = f.read() # read the txt file
wantedstring = re.findall(string1 | string2, line2) # find string1 or string2 in line2
if len(wantedstring) > 0: # if either string1 or string2 appears
exemptions.append(1) # append a 1 to "exemptions"
else:
exemptions.append(0) # otherwise a 0
print(exemptions)
Allerdings scheint es die re.findall (string1 | string2) Code funktioniert nicht (Typeerror: nicht unterstützte Operandtyp (e) für |: 'str' und 'str') . Ich habe auch versucht "re.findall (string1 oder string2, line2)" aber immer noch nicht funktioniert. Meine gewünschte Ausgabe wäre a [1], wenn eine der beiden Zeichenfolgen in der Datei vorhanden ist, und andernfalls [0].
Vielen Dank im Voraus!
Was Sie wirklich wollen, ist eine Suche mit aho-corasick, z.B. mit [https://pypi.python.org/pypi/pyahocorasick/1.0.0](this). – user2722968
@ user2722968 Wahrscheinlich ein guter Vorschlag, aber der Link funktioniert nicht, es scheint auch, es gibt eine neuere Version – Gribouillis