2017-07-13 3 views
0

Wie R zu verwenden, um zu überprüfen, ob eine Zeichenfolge mindestens eines der folgenden Zeichen enthält, /\:*?"<>|. Ich hoffe auch, dass die Zeichenfolge irgendwelche anderen Zeichen enthalten kann, z. -.R, überprüfen, ob Sonderzeichen in der Zeichenfolge

Eigentlich sind diese Zeichen diejenigen, die für Windows-Verzeichnis (Ordner) Name nicht erlaubt sind.

+0

so etwas wie 'myStr <- "this/string"; Grepl? ("[[: punct:]]", myStr)' – SymbolixAU

+0

@SymbolixAU, nein weil 'grepl (" [[: punct:]] "), "-") "ist wahr. – WCMC

+0

machen Sie einfach Ihr Muster ein wenig expliziter: 'myStr <-" Thisstring "; Grepl ("/ |: |? \\ | <|> | \\ | \\\\ | \\ *", myStr) ' – SymbolixAU

Antwort

3

das Muster definieren (n) in der Zeichenfolge finden wollen, dann grepl nutzen sie

pattern <- "/|:|\\?|<|>|\\|\\\\|\\*" 

myStrings <- c("this/isastring", "this*isanotherstring", "athirdstring") 

grepl(pattern, myStrings) 
# [1] TRUE TRUE FALSE 

Ein Abbau von pattern zu finden:

wenn es

waren
pattern <- "/" 

Dies würde nur nach "/"

suchen

Das vertikale Stange/Rohr wird als ein ‚ODER‘ Zustand auf dem Muster verwendet, so

pattern <- "/|:" 

sucht entweder „/“ oder „|“

Um nach dem "|" Zeichen selbst, müssen Sie es mit „\“

pattern <- "/|:|\\|" 

Und suchen Sie nach dem Zeichen „\“ zu entkommen, müssen Sie das auch entkommen (und in ähnlicher Weise für andere Sonderzeichen,?, *, ...

pattern <- "/|:|\\?|<|>|\\|\\\\" 

Referenz: Dealing with special characters in R

Verwandte Themen