【问题标题】:Regex pattern to valid file name正则表达式模式到有效文件名
【发布时间】:2015-11-04 13:32:52
【问题描述】:

我有一个文件名列表,其名称如下:

ADB_FULL_REQ_XXXXXXXXXXXX_151004_01.dat 

地点:

ADB_FULL_REQ_ 是常量

XXXXXXXXXXXX 是计算机的 Mac 地址

151004代表yyMMdd格式的日期

01 为 2 位,最大值为 99

我必须在包含这些文件的目录中执行搜索,并检查其中是否有任何无效/有效。

我尝试使用 RegEX 与这种模式,但 Match.Success 总是返回 false :

Match match = Regex.Match(filename, @"^ADB_FULL_REQ_XXXXXXXXXXXX_(d\{6})_(d\{2}).dat")

请告诉我我在这里做错了什么?谢谢!

【问题讨论】:

  • 你也要注意 Mac 地址

标签: c# regex


【解决方案1】:

错误不大:

^ADB_FULL_REQ_[a-fA-F0-9]{12}_(\d{6})_(\d{2}).dat

您使用了d\ 而不是\d。更改它,这将正常工作(我已添加检查 MAC 地址)。

【讨论】:

  • @NguyenHoang 很高兴为您提供帮助 :)
  • 你能给我解释一下[a-fA-F0-9]的部分吗?
  • 我现在明白了,只是有点糊涂了!
  • @NguyenHoang 是的,这是为了不区分大小写 :)
【解决方案2】:

您错过了检查 MAC 地址:

^ADB_FULL_REQ_[\dA-F]{12}_(\d{6})_(\d{2}).dat$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2012-10-18
    • 2011-05-11
    • 2019-08-09
    相关资源
    最近更新 更多