模式后提取数字

时间:2014-04-20 04:23:46

标签: c# regex

(1479页的50798.3 vol 1)

在上面的字符串中,为了在-page之前找到所有内容,我使用

^([^-page]*)

我已经测试了here

现在我有两个问题:

  1. 如何在页面后提取113.
  2. 如果删除“(”,如果它存在则在开头。在我的一些字符串中,“(”可能不存在。
  3. 请帮助。我必须在我的C#应用​​程序中使用它。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

^\(?([^-]*)-page\s(\d+)

两个捕获的论坛\1$1以及\2$2将包含您想要的数据。

您可以在此处查看:http://www.rubular.com/r/vr70ge5FNx

答案 1 :(得分:0)

您可以通过向群组添加姓名来增强sshashank124的答案

var regEx = @"^\((?<Desc>[^-]*)-page\s(?<Page>\d+)";

var match = Regex.Match("(50798.3 vol 1 of 14-page 113)", regEx);

string description = match.Groups["Desc"].Value;
string page = match.Groups["Page"].Value;