Regexp匹配字符串,即使存在空格(可选,由于用户错误)

时间:2017-01-12 08:14:54

标签: c# regex

我要匹配模式,我在regexp中非常糟糕。

我要匹配像ABC-12345这样的字符串,这个是完美的字符串。 但是用户可能会犯错误(对于开发人员来说一样),用户可以在连字符的任何一侧添加空格 因此,代码应该能够匹配,如果它是

ABC- 12345      one white space left side of hyphen
ABC -12345      one white space right side of hyphen
ABC - 12345     one white space both side of hyphen  

我已尝试/s[[:blank:]],但他们正在强制使用空格,但我需要它是可选的。

1 个答案:

答案 0 :(得分:2)

你需要在你的空白字符后加*来匹配零到多次:

string result = Regex.Match(input, @"[A-Z]{3}\s*-\s*[0-9]{5}").Value;

Regex101

或者,您可以在使用Regex之前过滤字符串空格:

string result = Regex.Match(input.Replace(" ", ""), @"[A-Z]{3}-[0-9]{5}").Value;