Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie reguläre Python-Ausdrücke zum Extrahieren der ID-Nummer
Bei der Datenverarbeitung ist es oft notwendig, Informationen in einem bestimmten Format aus Texten zu extrahieren. Als relativ häufig vorkommende persönliche Information wird die ID-Nummer häufig bei der Datenverarbeitung verwendet. Durch die Verwendung regulärer Python-Ausdrücke kann die ID-Nummer leicht extrahiert und bestimmte Überprüfungen durchgeführt werden.
Die ID-Nummer besteht aus 18 Ziffern, einschließlich der Region, des Geburtsdatums und des Bestätigungscodes in der ID-Nummer. In Python können wir die reguläre Ausdrucksfunktion des re-Moduls verwenden, um die ID-Nummer zu extrahieren.
Zuerst müssen wir eine Textdatei mit der ID-Nummer vorbereiten. Gehen Sie davon aus, dass die Datei den Namen id_list.txt trägt und jede Zeile eine ID-Nummer enthält.
Als nächstes können wir den folgenden Code verwenden, um die Datei zu lesen und die ID-Nummer zu extrahieren:
import re # 读取文件 with open('id_list.txt', 'r') as f: content = f.read() # 使用正则表达式匹配身份证号码 pattern = r'd{18}|(d{17}(d|X|x))' id_list = re.findall(pattern, content)
Im obigen Code haben wir den regulären Ausdruck r'd{18}|(d{17} (d) verwendet |X|x))'
passend zur ID-Nummer. Dieser reguläre Ausdruck besteht aus zwei Teilen, nämlich d{18}
und d{17}(d|X|x)
. Unter diesen bedeutet d{18}
eine Übereinstimmung mit 18 Ziffern, d. h. die vollständige ID-Nummer bedeutet eine Übereinstimmung mit 17 Ziffern und Die letzte Ziffer kann aus Zahlen oder Buchstaben X/x der ID-Nummer bestehen. Indem wir die beiden Teile mit dem Symbol |
verbinden, können wir gleichzeitig die vollständige ID-Nummer und die ID-Nummer mit dem Prüfcode abgleichen. r'd{18}|(d{17}(d|X|x))'
来匹配身份证号码。该正则表达式中有两部分,分别为d{18}
和d{17}(d|X|x)
。其中,d{18}
表示匹配18位数字,即完整的身份证号码;d{17}(d|X|x)
表示匹配17位数字和最后一位可能为数字或字母X/x的身份证号码。通过使用|
符号连接两部分,我们可以同时匹配完整的身份证号码和带校验码的身份证号码。
使用re.findall
函数可以在文本中匹配所有符合正则表达式的字符串,并返回匹配结果的列表。在这里,我们将提取到的身份证号码列表保存到id_list
re.findall
, um alle Zeichenfolgen abzugleichen, die dem regulären Ausdruck im Text entsprechen, und eine Liste übereinstimmender Ergebnisse zurückzugeben. Hier speichern wir die extrahierte ID-Nummernliste in der Variablen id_list
. Als nächstes können wir die extrahierte ID-Nummer überprüfen. Die Überprüfungsregeln für Personalausweisnummern können auf einschlägige Standards verweisen, die hier kurz vorgestellt werden. Der Prüfcode ist die letzte Ziffer oder der letzte Buchstabe X/x in der ID-Nummer. Er wird durch einen bestimmten Algorithmus aus den ersten 17 Ziffern abgeleitet. Die Berechnungsmethode des Prüfcodes ist wie folgt: # 校验码计算 def check_code(id_num: str) -> str: if len(id_num) == 18: factor_list = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] check_list = list(id_num[:-1]) check_sum = sum([int(check_list[i]) * factor_list[i] for i in range(17)]) check_num = (12 - check_sum % 11) % 11 if check_num == 0: return '1' elif check_num == 1: return '0' elif check_num == 2: return 'X' else: return str(12 - check_num) else: return ''
Im obigen Code definieren wir eine Funktion namens check_code, um den Prüfcode der ID-Kartennummer zu berechnen. Der Parameter der Funktion ist die ID-Nummer und der Rückgabewert ist der Bestätigungscode.
Schließlich können wir die extrahierten ID-Nummern in der Schleife überprüfen und nur die ID-Nummern mit korrekten Verifizierungscodes behalten:
# 进行校验,并输出结果 valid_id_list = [] for id_num in id_list: # 计算校验码 code = check_code(id_num[0]) if code and code == id_num[0][-1]: valid_id_list.append(id_num[0]) print(valid_id_list)
Im obigen Code definieren wir eine leere Liste mit dem Namen valid_id_list, die zum Speichern der ID-Nummer mit korrekten Codes verwendet wird Bestätigungscode. Verwenden Sie eine Schleife, um alle extrahierten ID-Nummern zu durchlaufen und ihre Prüfcodes zu berechnen. Wenn der Prüfcode mit dem Prüfcode in der extrahierten ID-Nummer übereinstimmt, fügen Sie die ID-Nummer zu valid_id_list hinzu. Schließlich geben wir valid_id_list aus, um eine Liste von ID-Nummern mit korrekten Bestätigungscodes zu erhalten.
Im Allgemeinen können mithilfe des Re-Moduls und regulärer Ausdrücke von Python problemlos ID-Nummern aus Text extrahiert und bestimmte Überprüfungen durchgeführt werden. Dies ist sehr hilfreich bei der Verarbeitung formatierter Informationen wie z. B. ID-Nummern.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Python-Ausdrücke zum Extrahieren der ID-Nummer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!