Sono molto nuovo a Python, infatti questo è il mio primo script.Python re.sub() stranezza
Sono alle prese con le espressioni regolari di Python. In particolare re.sub()
Ho il seguente codice:
variableTest = "192"
test = re.sub(r'(\$\{\d{1,2}\:)example.com(\})', r'\1' + variableTest + r'\2', searchString, re.M)
Con questo sto cercando di abbinare qualcosa come host": "${9:example.com}"
all'interno searchString
e sostituirlo example.com
con un nome server o l'indirizzo IP.
Se variableTest
contiene un IP, non riesce. Ottengo il seguente errore: sre_constants.error: invalid group reference
ho provato con variableTest
uguale a "127.0.0.1", "1", "192", "192.168". "127.0.0.1" funziona mentre il resto no. Se io antepongo gli altri con una lettera, funziona anche.
variableTest
è una stringa - verificata con type(variableTest)
Sono totalmente perso perché questo è.
Se rimuovo r'\1'
nella stringa di sostituzione funziona anche. r'\1'
contatterà ${\d}:
, con \d
un numero compreso tra 1 e 999.
Qualsiasi aiuto sarà molto apprezzato!
Si noti che mentre il post di nneonneo fornisce la risposta effettiva al problema, anche l'osservazione di PurityLake sulla propria chiamata di comando è vera: si sta effettivamente impostando l'argomento opzionale 'count' con il flag' re.M'. – cooltea