2017-06-29 1 views
0

Ich brauche etwas Hilfe. Ich muss ein spezielles Sonderzeichen wie semicolon, pipe, redirection and ampersand von Eingabe-String, die durch Post-Methode mit Python und Django erhalten wird entkommen. Ich erkläre meinen Code unten.So extrahieren Sie ein bestimmtes Sonderzeichen aus dem Eingabewert mit Python

if request.method == 'POST': 
    rname = request.POST.get('react') 

Hier aus dem obigen Eingabewert muss ich das Sonderzeichen entfernen. Bitte hilf mir.

Antwort

0

Vielleicht

import string 
bad_chars = "()|&" 
rname = "|icha()" 
rname.translate(string.maketrans("", "",), bad_chars) 

# This becomes 'icha' 

Dies ist in Python strip() multiple characters?

+0

hier, wo ist meine Eingabestring? – subhra

+0

rname ist Ihre Eingabezeichenfolge – mbieren

+0

Sie haben '" | icha() "' zu rname zugewiesen. – subhra

0

erklärt Diese mit regulären Ausdrücken erreicht werden kann. Mein Ansatz wäre:

import re 

special_chars = r'[;\|>&]' 
rname = request.POST.get('react') 
cleaned_rname = re.sub(special_chars, '', rname) 

Nun, wenn die Zeichenfolge rname enthält eine der Sonderzeichen werden sie entfernt werden, und Sie werden eine neue Zeichenfolge cleaned_rname mit dem Ausgang erhalten.

In der Variablen special_chars können Sie alle Zeichen angeben, die entfernt werden sollen. Sie sind in eckigen Klammern eingeschlossen: [].

0

Ihre Frage ist nicht sehr klar. Bitte geben Sie klar an, welche Variable aus welchen Charakteren und was sie werden sollen.

Ein Schnipsel, die Ihnen helfen können:

>>> 'HeRllo'.replace('R','') 
Hello 

Oder für eine bestimmte Liste von Zeichen:

>>> stringToEscape = 'He≪o' 
>>> sources = ['&', ';'] 
>>> targets = ['', ''] 
>>> for source, target in zip(sources, targets): 
>>> stringToEscape = stringToEscape.replace(source, target) 
>>> print stringToEscape 
Hello 

Aber vielleicht Sie suchen eine spezielle Funktion, die in Django ist bereits vorhanden.

0

Diese verwendet ersetzen Methode:

chars = ";>" # and so on 
rname = "stuff;" 

for char in chars: 
    if char in rname: 
     new_rname = rname.replace(char,'') 
    rname = new_rname 

Sie müssen eine neue Variable zuweisen, weil Strings sind unveränderlich reult sein sollte:

>>print(rname) 
stuff 
Verwandte Themen