405
votes

Is it possible to define a regex which will match every character except a certain defined character or set of characters?

Basically, I wanted to split a string by either comma (,) or semi-colon (;). So I was thinking of doing it with a regex which would match everything until it encountered a comma or a semi-colon.

4

4 Answers

548
votes
[^,;]+         

You haven't specified the regex implementation you are using. Most of them have a Split method that takes delimiters and split by them. You might want to use that one with a "normal" (without ^) character class:

[,;]+
93
votes

Use character classes. A character class beginning with caret will match anything not in the class.

[^,;]
2
votes

Use this:

([^,;]*[,;])*