【问题标题】:Extract Numbers after pattern模式后提取数字
【发布时间】:2014-04-20 13:40:17
【问题描述】:

(50798.3 第 1 卷,共 14 页,第 113 页)

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

^([^-page]*)

我已经测试过了here

现在我有两个问题:

  1. 如何在-page之后提取113。
  2. 如果开头的“(”存在,如何删除它。在我的某些字符串中,“(”可能不存在。

请帮助。我必须在我的 C# 应用程序中使用它。

【问题讨论】:

  • 我的回答有帮助吗?或者您还有其他问题吗?

标签: c# regex


【解决方案1】:

你可以这样做:

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

两个捕获的组\1$1\2$2 将包含您想要的数据。

您可以在这里查看:http://www.rubular.com/r/vr70ge5FNx

【讨论】:

  • 谢谢!这很有帮助。
【解决方案2】:

您可以通过将名称添加到您的组来增强 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;

【讨论】:

  • 谢谢!这正是我想要的。
猜你喜欢
  • 2020-01-14
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多