特定文件掩码的正则表达式

时间:2018-04-09 11:14:48

标签: regex

我希望有2个正则表达式模式,用于在特定文件掩码后检查文件。我喜欢这样做的方式如下。

模式1:

  1. 检查library(dplyr) df <- data.frame(date = c(18,20,21,15)) df %>% mutate(new_date = case_when(date > 18 ~ date + 1900, TRUE ~ date + 2000)) date new_date 1 18 2018 2 20 1920 3 21 1921 4 15 2015 的左侧是否有7位数。

  2. 检查_的右侧是否为数字。

  3. 检查指定的扩展名是否存在。

  4. 输入将如下所示:_

    模式2:

    1. 检查&#34; Space&#34;左边是否有10位数字。炭
    2. 检查&#34; Space&#34;右边是否有4位数字。炭
    3. 检查1234567_1.jpg的右侧是数字
    4. 检查指定的扩展名是否存在。
    5. 输入如下所示:_

      如上所述,这将用于检查特定的文件掩码。

      我一直在玩这样的想法:^ [0-9] [0-9] .jpg $ 和^ [0-9] [0-9] [0-9] .jpg $是我的第一次尝试。

      我为不提供尝试而道歉。

2 个答案:

答案 0 :(得分:0)

我建议模式与|)结合使用:

    string pattern = string.Join("|",
       @"(^[0-9]{7}_[0-9]+\.jpg$)",             // 1st possibility
       @"(^[0-9]{10} [0-9]{4}_[0-9]+\.png$)");  // 2nd one

    ....

    string fileName = @"c:\myFiles\1234567_1.jpg";

    // RegexOptions.IgnoreCase - let's accept ".JPG" or ".Jpg" files 
    if (Regex.IsMatch(Path.GetFileName(fileName), pattern, RegexOptions.IgnoreCase)) {
      ...
    }

让我们解释第二种模式:(^[0-9]{10} [0-9]{4}_[0-9]+\.jpg$)

    ^           - anchor (string start) 
    [0-9]{10}   - 10 digits - 0-9
                - single space 
    [0-9]{4}    -  4 digits
    _           - single underscope 
    [0-9]+      -  one or more digits 
    \.png       - .png (. is escaped) 
    $           - anchor (string end)

答案 1 :(得分:-1)

这适用于第一个正则表达式:

\d{7}_\d*.(jpg|png)

这适用于第二个正则表达式:

\d{10}\s\d{4}_\d*.(jpg|png)

如果你想一起使用它们,就像下面这样:

(\d{7}_\d*.(jpg|png)|\d{10}\s\d{4}_\d*.(jpg|png))

在这个组(jpg | png)中,你可以通过用|分隔它们来添加另一个扩展名(或)。

您可以在https://regex101.com/

检查它是否适合您

干杯!