The following pattern will match strings that contain only letters, numbers, "+" or "-", including international characters such as "å" or "ö" (and excluding the "_" character, which is included in " \w'):
^[-+\p{L}\p{N}]+$
Examples:
string pattern = @"^[-+\p{L}\p{N}]+$";
Regex.IsMatch("abc", pattern); // returns true
Regex.IsMatch("abc123", pattern); // returns true
Regex.IsMatch("abc123+-", pattern); // returns true
Regex.IsMatch("abc123+-åäö", pattern); // returns true
Regex.IsMatch("abc123_", pattern); // returns false
Regex.IsMatch("abc123+-?", pattern); // returns false
Regex.IsMatch("abc123+-|", pattern); // returns false
source
share