2017-07-07 3 views
0

Ich habe versucht, mit einem geeigneten Regrex das Wort "Pommes Frites" aus Strings zu entfernen. Es war jedoch nicht sehr erfolgreich.Wie sollte ich eine Regex schreiben, um ein bestimmtes Wort aus einer Zeichenfolge zu entfernen?

Idealerweise sollte der Regrex-Ausdruck in der Lage sein, das Wort "Pommes" zu entfernen, unabhängig davon, ob es in Groß- und/oder Kleinschreibung ist und das Wort "Pommes" sollte in folgenden Fällen nicht entfernt werden.

frenchfries 
friesislove 
ilovefriesverymuch 

Dies ist, was ich mit so weit

mit der oben
gsub('(?i)\\Wfries\\W','',string) 

Ein großen Fehler kam habe, ist, dass regulärer Ausdruck nicht in der Lage ist, das Wort ‚Pommes frites‘ zu erkennen, ob es entweder an der ist Start oder das Ende der Zeichenfolge.

z. "Ich liebe Pommes", "Pommes ist Liebe"

Antwort

3

TRE Regex-Engine unterstützt keine Inline-Modifikatoren und um ein ganzes Wort zu finden, müssen Sie Wortgrenzen verwenden \b.

Sie können eine PCRE regex verwenden, wenn Sie einen Inline-Groß- und Kleinschreibung Modifikator (?i) verwenden möchten:

gsub('(?i)\\bfries\\b','',string, perl = TRUE) 

oder eine TRE regex mit ignore.case =TRUE Argument:

gsub('\\bfries\\b','',string, ignore.case =TRUE) 
1

Sie können auch versuchen, diese:

gsub("\\<fries\\>",replacement = "",string ,ignore.case = TRUE) 

\\<fries\\> wird sicherstellen, dass nur das genaue Wort "Pommes" ersetzt wird

Verwandte Themen