我希望有2个正则表达式模式,用于在特定文件掩码后检查文件。我喜欢这样做的方式如下。
模式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:
1234567_1.jpg
的右侧是数字输入如下所示:_
如上所述,这将用于检查特定的文件掩码。
我一直在玩这样的想法:^ [0-9] [0-9] .jpg $ 和^ [0-9] [0-9] [0-9] .jpg $是我的第一次尝试。
我为不提供尝试而道歉。
答案 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)中,你可以通过用|分隔它们来添加另一个扩展名(或)。
检查它是否适合您干杯!