Sie aus roh Charakter umwandeln kann und dann grep
für vordefinierte Klassen:
(rch <- as.raw(0:255))
# [1] 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 ...
(ch <- rawToChar(rch, TRUE))
# [1] "" "\001" "\002" "\003" "\004" "\005" "\006" "\a" "\b" "\t" "\n" "\v" "\f" ...
## change locale to avoid warnings
Sys.setlocale('LC_ALL','C')
dput(grep('[[:punct:]]', ch, value = TRUE))
# c("!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",",
# "-", ".", "/", ":", ";", "<", "=", ">", "?", "@", "[", "\\",
# "]", "^", "_", "`", "{", "|", "}", "~")
?regex
beschreibt diese Klassen:
[:alnum:]
alphanumerische Zeichen: [:alpha:]
und [:digit:]
.
[:alpha:]
Alphabetische Zeichen: [:lower:]
und [:upper:]
.
[:blank:]
Leere Zeichen: Leerzeichen und Tabulatorzeichen und möglicherweise andere vom Gebietsschema abhängige Zeichen, z. B. Leerzeichen.
[:cntrl:]
Steuerzeichen. In ASCII haben diese Zeichen die oktalen Codes 000 bis 037 und 177 (DEL). In einem anderen Zeichensatz sind dies die entsprechenden Zeichen, sofern vorhanden.
[:digit:]
Digits: 0 1 2 3 4 5 6 7 8 9.
[:graph:]
Graphical Zeichen: [: alnum:] und [: punct:].
Kleinbuchstaben im aktuellen Gebietsschema.
[:print:]
Druckbare Zeichen: [:alnum:]
, [:punct:]
und Raum.
[:punct:]
Satzzeichen: ! "# $% & '() * +, - /:; < => @ [\]^_` {|} ~
[:space:]
Leerzeichen:.?. Tabulator, neue Zeile, vertikal Registerkarte Formularvorschub , Wagenrücklauf, Raum und möglicherweise andere locale abhängigen Zeichen
[:upper:]
Großbuchstaben in der aktuellen locale
[:xdigit:]
Hexadezimalziffern:.. 0 1 2 3 4 5 6 7 8 9 ABCDEF abcde f.
So können wir die oben wiederholen mit irgendwelchen
dput(grep('[[:space:]]', ch, value = TRUE))
# c("\t", "\n", "\v", "\f", "\r", " ")
dput(grep('[[:alnum:]]', ch, value = TRUE))
# c("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B",
# "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",
# "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b",
# "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
# "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")
Sie können auch PCRE verwenden
dput(grep('\\s', ch, value = TRUE))
# c("\t", "\n", "\v", "\f", "\r", " ")
dput(grep('\\v|\\h', ch, value = TRUE, perl = TRUE))
# c("\t", "\n", "\v", "\f", "\r", " ", "\205", "\240")
dput(grep('\\p{P}', ch, value = TRUE, perl = TRUE))
# c("!", "\"", "#", "%", "&", "'", "(", ")", "*", ",", "-", ".",
# "/", ":", ";", "?", "@", "[", "\\", "]", "_", "{", "}", "\241",
# "\247", "\253", "\266", "\267", "\273", "\277")
oder eigene definieren, etc
dput(grep('[\x20-\x7E]', ch, value = TRUE))
dput(grep('[A-c]', ch, value = TRUE))
Was ist Ihr Aufgabe: nur um alle Symbole aus der Klasse in einer Zeichenfolge zu sammeln oder alle zu löschen Symbole aus einer anderen Zeichenfolge? –
Sammeln Sie alle Symbole aus einer Klasse in eine Zeichenfolge – petergensler
versuchen Sie und finden Sie die entsprechenden Raw-Nummern ... dh 'rawToChar (as.raw (1: 200))' – user20650