我正在尝试查找遵循“char'h'后跟一个或多个数字模式的文件”,例如h0,h1,h22
但我也得到了“h22 cco”和hhh0
如何修复
files = new List<String>((from file in files where Regex.IsMatch(Path.GetFileNameWithoutExtension(file), "h\\d+", RegexOptions.IgnoreCase | RegexOptions.Singleline) select Path.GetFileNameWithoutExtension(file)));
此致
答案 0 :(得分:3)
使用行或字符串特殊字符^
和$
的开头和结尾,即:^h+\d+$
。
const string Pattern = @"^h+\d+$";
它将匹配字符串,其在字符串的开头包含一个或多个h
,然后数字一个或多个重复。示例:h0
,h34
,hh5
,hhhh789
。
如果您在开始时只需要一个h
,请使用此正则表达式:^h\d+$
。它将匹配:h0
,h34
,h789323
。
答案 1 :(得分:0)
^ 表示:匹配字符串中的起始位置。在基于行的工具中,它匹配任何行的起始位置。
我想你需要这种模式:
Regex regexObj = new Regex(@"\bh\d+\b", RegexOptions.Singleline | RegexOptions.IgnoreCase);
“\ b”表示字边界