Matching any text but those matching a pattern is usually achieved with splitting the string with the regex pattern.
Examples:
Regex.Split(text, @"red|green|blue")
or, to get rid of empty values, Regex.Split(text, @"red|green|blue").Where(x => !string.IsNullOrEmpty(x))
(see demo)Regex.Split(text, "red|green|blue")
or, to remove empty items, Regex.Split(text, "red|green|blue").Where(Function(s) Not String.IsNullOrWhitespace(s))
(see demo, or this demo where LINQ is supported)text.split(/red|green|blue/)
(no need to use g
modifier here!) (to get rid of empty values, use text.split(/red|green|blue/).filter(Boolean)
), see demotext.split("red|green|blue")
, or - to keep all trailing empty items - use text.split("red|green|blue", -1)
, or to remove all empty items use more code to remove them (see demo)text.split(/red|green|blue/)
, to get all trailing items use text.split(/red|green|blue/, -1)
and to remove all empty items use text.split(/red|green|blue/).findAll {it != ""})
(see demo)text.split(Regex("red|green|blue"))
or, to remove blank items, use text.split(Regex("red|green|blue")).filter{ !it.isBlank() }
, see demotext.split("red|green|blue")
, or to keep all trailing empty items, use text.split("red|green|blue", -1)
and to remove all empty items, use text.split("red|green|blue").filter(_.nonEmpty)
(see demo)text.split(/red|green|blue/)
, to get rid of empty values use .split(/red|green|blue/).reject(&:empty?)
(and to get both leading and trailing empty items, use -1
as the second argument, .split(/red|green|blue/, -1)
) (see demo)my @result1 = split /red|green|blue/, $text;
, or with all trailing empty items, my @result2 = split /red|green|blue/, $text, -1;
, or without any empty items, my @result3 = grep { /\S/ } split /red|green|blue/, $text;
(see demo)preg_split('~red|green|blue~', $text)
or preg_split('~red|green|blue~', $text, -1, PREG_SPLIT_NO_EMPTY)
to output no empty items (see demo)re.split(r'red|green|blue', text)
or, to remove empty items, list(filter(None, re.split(r'red|green|blue', text)))
(see demo)regexp.MustCompile("red|green|blue").Split(text, -1)
, and if you need to remove empty items, use this code. See Go demo.NOTE: If you patterns contain capturing groups, regex split functions/methods may behave differently, also depending on additional options. Please refer to the appropriate split method documentation then.