2017-05-29 6 views
-4

私はC#アプリケーションで.Net regex testerを使用していますが、IsMatch()はfalseを返しています。ここで.NETの正規表現でIsMatch()がfalseを返す

は私のコードです:コードに問題がある

Regex reg = new Regex(@"^[0 - 9]{ 3}_RE_[0 - 9]{ 4}[0-9]{2}[0-9]{2}_[0 - 9]{2}[0-9]{2}[0-9]{2}.TXT$"); 

string fileName = "102_RE_20120102_091013.TXT" 

if (reg.IsMatch(fileName)) 
{ 
    // Control flow never reaches this block 
} 

何?

+0

'https:// regex101.com /'は、リアルタイムでエラーをキャッチするのに役立ちます!本当の答えではありませんが、私はここでそれを共有したいと思いました。 – Snickbrack

+0

スペースを削除すると動作します - https://regex101.com/r/LRKfMO/1 –

答えて

4

内部には不要なスペース文字があるためです。試す

^[0-9]{3}_RE_[0-9]{4}[0-9]{2}[0-9]{2}_[0-9]{2}[0-9]{2}[0-9]{2}.TXT$ 

サンプル:https://dotnetfiddle.net/3ggSJV

0

[0から9]:セット中に存在する単一caracterと一致

[0-9]:0と9の間の範囲内の単一caracterと一致(大文字と小文字を区別)

ので、あなたがこのオンライン0123を使用することができます

^[0-9]{3}_RE_[0-9]{4}[0-9]{2}[0-9]{2}_[0-9]{2}[0-9]{2}[0-9]{2}.TXT$ 

を使用正規表現

1

正しいテスター、あなたも書くことができます:[0-9](桁)

ため

"^\d{3}_RE_\d{8}_\d{6}.TXT$"

\dスタンドあなたはまた、すべての日付と時刻の部分を取得したい場合あなたは使用することができます "^(\d{3})_RE_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2}).TXT$"

関連する問題