În acest articol vom discuta despre cum să înlocuiți caractere simple sau multiple într-un șir în Python.
Python oferă o funcție str.replace () adică
str.replace(old, new , count)
Returnează un nou obiect șir care este o copie a șirului existent cu înlocuită conţinut. De asemenea,
- Dacă numărarea nu este furnizată, atunci va returna un șir cu toate aparițiile „vechi”, înlocuit cu șirul „nou”.
- Dacă parametrul de numărare este trecut, acesta va reveni returnează un șir cu primele apariții „numărare” ale șirului „vechi” înlocuite cu șir „nou”.
Să înțelegem prin exemple,
Înlocuiește toate aparițiile unui caracter dat / string într-un șir
Să presupunem că avem un șir, adică
mainStr = "Hello, This is a sample string"
Acum, să înlocuim toate aparițiile lui ‘cu’ X ‘adică
"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X")
Conținutul otherStr este după cum urmează,
Hello, ThiX iX a Xample Xtring
Ca șirurile sunt imuabile în Python, deci nu putem schimba conținutul acestuia. Prin urmare, funcțiile membre precum replace () returnează un șir nou.
Deoarece nu am furnizat parametrul count în funcția replace (). Deci, va înlocui toate aparițiile „s” cu „X”. Dar dacă vrem să înlocuim doar primele câteva apariții în loc de toate? Să vedem cum să facem asta,
Înlocuiți primele n apariții ale unui caracter / sub șir într-un șir
Să presupunem că avem un șir, adică
mainStr = "Hello, This is a sample string"
Acum, să înlocuim primele 2 apariții ale lui ‘s’ cu ‘XXXS’, adică
"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2)
Conținutul otherStr este după cum urmează,
Hello, ThiXXXS iXXXS a sample string
Deoarece am trecut parametrul de numărare ca 2, deci numai primele 2 apariții ale lui ‘s’ vor fi înlocuite în copia returnată.
Înlocuiți mai multe caractere / strings într-un șir
funcția str.replace () poate înlocui aparițiile unui singur șir dat. Dar dacă vrem să înlocuim mai multe șiruri secundare într-un șir dat?
Să presupunem că avem un șir, adică
mainStr = "Hello, This is a sample string"
Acum, cum să înlocuim toate aparițiile acestor trei caractere „s”, „l”, „a” cu acest șir „AA”?
Să creăm o nouă funcție peste replace () pentru a face asta, adică
"""Replace a set of multiple sub strings with a new string in main string."""def replaceMultiple(mainString, toBeReplaces, newString): # Iterate over the strings to be replaced for elem in toBeReplaces : # Check if string is in the main string if elem in mainString : # Replace the string mainString = mainString.replace(elem, newString) return mainString
Acesta va înlocui toate aparițiile șirurilor din List toBeReplaces cu newString în lista principală principală mainString.
Să vedem cum să înlocuim aparițiile cu „AA” adică
Conținutul otherStr este după cum urmează,
HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring
Exemplul complet este după cum urmează,
Ieșire:
String with replaced Content : Hello, ThiX iX a Xample XtringHello, ThiXXXS iXXXS a sample stringHeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring