fork download
  1. import re
  2.  
  3. cnic_data = {}
  4.  
  5.  
  6. cnic_number_pattern = r'\b(\d{5}-\d{7}-\d)\b'
  7. name_pattern = r'\bName\s+(\S(?:.*?\S)?)\s{2,}(?=Father\b)'
  8. father_name_pattern = r'\bFather\s*Name[:\-\s]*(\S(?:.*?\S\s+))(?=Gender\b)'
  9. country_of_stay_pattern = r'\bCountry\s*of\s*Stay\s+(?:[A-Z]+)?[:\-\s]*([A-Z][A-Za-z\s]*)(?=\s+Identity\b)'
  10. gender_pattern = r'\bGender\s*[:\-\sa-zA-Z]*\s+(M|F|Male|Female)\b'
  11. dob_pattern = r'\bDate\s*of\s*Birth\s+[:\-\s0-9]*\s(\d{2}[.-]\d{2}[.-]\d{4})\b'
  12.  
  13. etext = "PAKISTAN National Identity Card ISLAMIC REPUBLIC OF PAKISTAN Name Muhammad Talha Bin Maghfoor Father Name Maghfoor Ahmed Gender Country of Stay M Pakistan Identity Number Date of Birth 37403-9637109-9 11.01.1999 Date of Issue Date of Expiry 03.02.2024 03.02.2034"
  14.  
  15. cnic_data['CNIC Number'] = re.search(cnic_number_pattern, etext)
  16. cnic_data['Name'] = re.search(name_pattern, etext)
  17. cnic_data['Father Name'] = re.search(father_name_pattern, etext)
  18. cnic_data['Gender'] = re.search(gender_pattern, etext)
  19. cnic_data['Date of Birth'] = re.search(dob_pattern, etext)
  20. cnic_data['Country of Stay'] = re.search(country_of_stay_pattern, etext)
  21.  
  22. cnic_data = {key: (match.group(1) if match else "Not Found") for key, match in cnic_data.items()}
  23.  
  24.  
  25. for key, value in cnic_data.items():
  26. print(f"{key}: {value}")
Success #stdin #stdout 0.05s 9780KB
stdin
Standard input is empty
stdout
CNIC Number: 37403-9637109-9
Name: Muhammad Talha Bin Maghfoor
Father Name: Maghfoor Ahmed 
Gender: M
Date of Birth: 11.01.1999
Country of Stay: Pakistan