正则表达式:检查字符串表达式,然后过滤掉值



试图找出与正则表达式匹配的方法,然后从该字符串中获取一个值。

字符串值如下所示: 计算机文件硬件20131211.pdf 计算机文件软件20131322.pdf 计算机文件工程20232.pdf

Regex regex = new Regex(@"computerFile[^[A-Za-z]+$]([^0-9]+).pdf");
Match match = regex.Match("computerFileHardware20131211.pdf");
if (match.Success)
{
Console.WriteLine(match.Value);
}

所以我要做的是确保我可以匹配正则表达式,然后能够过滤掉数字值。例如,对于 computerFileHardware20131211.pdf数字值将为 20131211。

我不是很擅长正则表达式。我认为我的第一个障碍是弄清楚正则表达式。 我在某处读到您在要过滤掉的字符串周围加上括号。所以这就是为什么我有 ([^0-9]+(。

尝试类似 https://regex101.com/r/KWiAg0/1

Regex regex = new Regex(@"computerFile[A-Za-z]+([0-9]+).pdf");
Match match = regex.Match("computerFileHardware20131211.pdf");
if (match.Success)
{
Console.WriteLine(match.Groups[1].Value);
}

正则表达式可以包含括在括号中的"子表达式"。 每个子表达式形成一个组。使用Groups属性,可以访问正则表达式捕获的各种组。

如果您只想替换数字:

string fileName = "computerFileHardware20131211";
string pattern = "[0-9]{1,}";
string replacement = "123";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(fileName , replacement);

最新更新