Meine Regex-Syntax liefert nicht die korrekten Ergebnisse. Ich habe Daten von GitHub zurückgegeben, die die github3.py-Bibliothek verwenden, die beim Analysieren des Patch-Schlüssels von MD-Dateien (https://developer.github.com/v3/pulls/#list-pull-requests-files) drei mögliche Zeichenfolgen zurückgibt. Ich habe die Regex-Dokumentation und mehrere Threads gelesen, aber mir fehlt etwas in meiner Syntax.Python-Regex-Anweisung liefert keine korrekten Ergebnisse
string1 = '> [HELP.SELECTOR]'
string2 = '-> [HELP.SELECTOR]'
string3 = '+> [HELP.SELECTOR]'
Ich möchte für die exakte Übereinstimmung mit string2
oder string3
und False True drucken, wenn string1
gefunden wird. Meine Ergebnisse geben False zurück, wenn string2
oder string3
gefunden wird.
for prs in repo.pull_requests():
search_string_found = 'False'
regex_search_string1 = re.compile(r"^\+>\s\[HELP.SELECTOR\]")
regex_search_string2 = re.compile(r"^->\s\[HELP.SELECTOR\]")
for data in repo.pull_request(prs.number).files():
match_text1 = regex_search_string1.search(data.patch)
match_text2 = regex_search_string2.search(data.patch)
if match_text1 is not None and match_text2 is not None:
search_string_found = 'True'
break
print('HELP.SELECTOR present in file: ', search_string_found)
Gerade Test gegen einen regulären Ausdruck: 'regex_search_string re.compile = (r "^ [+ -]> \ s \ [HELP \ .SELECTOR \]")', dann gilt: 'wenn regex_search_string.search (data .patch): ' –
Ihre Lösung hat funktioniert. Ich änderte die Regex, indem ich das Caret entfernte und die korrekten Ergebnisse zurückgaben. 'regex_search_string = re.compile (r" [\ + -]> \ s \ [HILFE \ .SELECTOR \] ")'. – DBS
Das bedeutet, dass die benötigten Strings nicht am Anfang der Saite waren, oder? –