Próbuję więc zastąpić wszystkie specjalne znaki do spacji, przy użyciu REGEX: Mój kod działa, ale nie zastępuje podkreślenia, co powinienem zrobić?

Kod:

    new_str = re.sub(r'[^\w]', ' ', new_str)

Praca na wszystkich innych specjalnych znakach, ale nie podkreśla.

1
user2918984 30 listopad 2013, 19:44

4 odpowiedzi

Najlepsza odpowiedź

Podnośnik jest uważany za "charakter słowny" w wyrażeniach regularnych PCRE. Jeśli chcesz dopasować, jest "cokolwiek, co nie jest słowem charakterem lub podkreśleniem", spróbuj tego:

new_str = re.sub(r'[\W_]', ' ', new_str)
3
Tim Pierce 30 listopad 2013, 15:47

Podnośnik jest częścią grupy znaków {X0}}. Zamiast tego użyj:

new_str = re.sub(r'[^a-zA-Z0-9]', ' ', new_str)

Który jest taki sam jak \w, ale minus podkreśla.

0
Martijn Pieters 30 listopad 2013, 15:46
new_str = re.sub(r'[^\w]|_', ' ', new_str)
0
gongzhitaao 30 listopad 2013, 15:46

Mam to, zmieniłem to do:

    new_str = re.sub(r'[\w_+]', ' ', new_str)
0
David 30 listopad 2013, 16:10