2017-05-29 44 views
-4

我正在使用.Net正则表达式测试程序,但在我的C#应用​​程序中,IsMatch()返回false。IsMatch()在.NET中为正则表达式返回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 –

回答

0

[0 - 9]:匹配存在于组中的单个卡拉科特

[0-9]:匹配范围为0到9之间的单个卡拉科特(区分大小写)

所以使用

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

你可以使用这个在线https://regex101.com/正则表达式测试仪

1

正确的,你也可以这样写:

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

\d代表[0-9](数字)

如果你也想获得所有的日期和时间部分你可以使用 "^(\d{3})_RE_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2}).TXT$"

相关问题