2017-01-12 2 views
0

私はパターンにマッチしていますが、私はregexpで非常に悪いです。空白文字(オプション、ユーザミスのため)があっても文字列を一致させる正規表現

私はこのABC-12345のような文字列と一致する必要がありますが、これは完璧な文字列です。 しかし、ユーザーは、それは私が/sを試してみた

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 

であれば、コードが一致することができるはず、ユーザーがハイフン のいずれかの側にパタパタに空白を追加することができ、(開発者のためにいつものように)間違いを犯すことができます[[:blank:]]しかし、彼らは空白を必須にしていますが、私はオプションが必要です。

+0

'\ s'の後に' * 'を使用してください:' @ "\ s *" ' –

+3

Regexへの入力として' string.Replace( ""、 "")を使わないのはなぜですか? – Abion47

+0

パターンの前後には他の単語がありますが、それを使用しようとします。 – donstack

答えて

2

あなたは何回までゼロに合わせて空白文字の後に*を配置する必要があります。

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

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

Regex101

また、あなたは正規表現を使用する前に、空白のためにあなたの文字列をフィルタリングすることができます

関連する問題