我使用.Net正则表达式测试程序,但在我的C#应用程序中,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 :(得分:4)
因为里面有不必要的空格字符。尝试
^[0-9]{3}_RE_[0-9]{4}[0-9]{2}[0-9]{2}_[0-9]{2}[0-9]{2}[0-9]{2}.TXT$
答案 1 :(得分: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$"
答案 2 :(得分: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/正则表达式测试程序