2016-04-01 7 views
0

Ich versuche, nicht ASCII-Zeichen aus einer Datendatei mit OCTAVE zu entfernen, aber ich kann es nicht funktionieren. Ich habe versucht, die ASCII-Codes dieser "seltsamen" Zeichen zu bekommen und sie haben zufällige ASCII-Codes. Ein Beispiel Zeichenfolge ist dies:Entfernen Sie nicht-ASCII-Zeichen in der Oktave

asdqwФЕДЕРАЛЬ234НОЕ234 АГЕНТСqewwqedasТВО ПasdsadО ОБРАasdasdЗОВАНИЮ Госудаsadasdsagwfрственная акадеasdмия профессиональной п

Haben euch irgendwelche Vorschläge, wie kann ich die nicht ASCII-Zeichen aus dieser Zeichenfolge entfernen? Oder besser, wie kann ich feststellen, ob eine gegebene Zeichenkette nicht ASCII-Zeichen hat?

Vielen Dank im Voraus!

+2

Ich denke, Sie könnten es ziemlich einfach mit regulären Ausdrücken tun. Hier ist ein C# -Beispiel, aber der tatsächliche Regexp-Teil sollte derselbe sein. Sie müssen es nur von Octave statt von C# aufrufen: http://StackOverflow.com/a/3303435/1011724 – Dan

+0

Ich begann gerade heute mit dem Studium der Oktave ... also weiß ich noch nicht, wie ich das umsetzen soll:/ –

+1

siehe ' regexprep': [MATLAB] (http://www.mathworks.com/help/matlab/ref/regexprep.html), [Octave] (http://www.gnu.org/software/octave/doc/v4). 0.1/Manipulierende Strings.html # XREFregexprep). Das wäre: 'out = regexprep (str,' [^ 0-9a-zA-Z] + ',' ') 'wobei' str 'die Eingabezeichenfolge ist. – Amro

Antwort

0

Um alle nicht ASCII-Zeichen im Bereich von 0..127 dezimal

a = "asdqwФЕДЕРАЛЬ234НОЕ234 АГЕНТСqewwqedasТВО ПasdsadО ОБРАasdasdЗОВАНИЮ Госудаsadasdsagwfрственная акадеasdмия профессиональной п"; 
a(! isascii (a)) = [] 

die

a = asdqw234234 qewwqedas asdsad asdasd sadasdsagwf asd 

gibt Gebrauch zu entfernen, und wenn Sie nur, wenn es nicht ASCII-Zeichen sind, wollen überprüfen:

any (! isascii("foobar")) 
ans = 0 
any (! isascii("foobaröäüß")) 
ans = 1