我刚刚开始学习正则表达式,但仍然有很多我不熟悉的概念。我们说我有以下字符串:
string s = "a minimum of eight (8) projects over the last five (5) years";
如何将字符串8忽略并在两个括号(8)放在单词项目前面时提取数字。我不想提取5。
非常感谢任何帮助。
答案 0 :(得分:2)
试试这个:
string source = "a minimum of eight (8) projects over the last five (5) years";
Regex re = new Regex(@"\((\d+)\) projects");
var result = re.Match(source).Groups[1].Value;
// result = "8";
如果您需要一个号码,只需解析它 - int.Parse(result)
答案 1 :(得分:0)
提取两个括号之间的数字(8)
我将假设你的主要目标是提取数字。在这种情况下,代码
resultString = Regex.Match(subjectString, @"\d+").Value;
会给你数字(作为一个字符串)。 \ d是数字,+表示一个或多个
答案 2 :(得分:0)
我会选择这样的事情:
String matchPattern = @"a minimum of .+ \((\d+)\) projects";
String replacePattern = @"a minimum of \1 projects";
String done = Regex.Replace(source, matchPattern, replacePattern);
这样做会将字符串中的eight (8)
替换为8
,并且对于该位置的任何字符串都会替换为括号中的数字。