it-swarm.com.de

Grep in R verwenden, um Zeichenfolgen als ganze Wörter zu finden (aber keine Zeichenfolgen als Teil von Wörtern)

Ich suche den richtigen regulären Ausdruck. Folgende

t1 = c("IGF2, IGF2AS, INS, TH", "TH", "THZH", "ZGTH")
grep("TH",t1, value=T)

gibt alle Elemente von t1 zurück, aber nur das erste und das zweite sind korrekt. Ich möchte nur Einträge mit Word/Phrase TH zurückgeben?

24
Hans

Sie müssen Wortbegrenzungsanker (\b) um Ihre Suchzeichenfolgen hinzufügen, sodass nur ganze Wörter gefunden werden (dh Wörter, die von Nicht-Word-Zeichen umgeben sind, oder Anfang/Ende der Zeichenfolge, wobei "Wortzeichen" \w bedeutet, dh alphanumerisches Zeichen).

Versuchen

grep("\\bTH\\b",t3, value=T)
34
Tim Pietzcker

Sie können \< und \> in einer Regex verwenden, um am Anfang/Ende des Wortes zu suchen.

grep ("\\<TH\\>", t1) etc.

16
Anatoliy

Andere Option:

grep("^TH$",t1, value=T)
0
Ferroao