【问题标题】:.Net regex - extract data from one of two groups.Net 正则表达式 - 从两组之一中提取数据
【发布时间】:2016-12-19 21:22:15
【问题描述】:

鉴于以下两组数据和 .Net 正则表达式的限制,没有替代和没有编程方式,我如何从用户信息组而不是发票信息组捕获数据(姓氏或名字)?当我构造一个正则表达式时,总是会出现两个结果。

User Information:
Title:                Product Specialist
Last Name:            Smithson
First Name:           Robert
Invoice Information: 
Title:                Buyer
Last Name:            Moneypenny
First Name:           Penelope

我可以使用以下表达式轻松地从 Invoice 组中提取数据:(?<=Invoice\sInformation\:(.*\r\n)*Last\sName\:\s*).*,但问题出在第一组。

【问题讨论】:

  • 能否请您包含您目前尝试过的正则表达式。
  • 上面的数据在一个列表中,每个列表都用 CRLF 分隔,例如姓氏:史密森在一条线上。这是提取两个姓氏的几个正则表达式之一:
  • (?
  • 我可以使用以下表达式轻松地从 Invoice 组中提取数据:(?
  • 这里的capture是什么意思?预期的结果是什么?您想匹配名字/姓氏吗?还是像User Information:\r\nTitle:.*\r\nLast Name:\s*(.*)\r\nFirst Name:\s+(.*)enough 一样捕获?你用的是什么工具?

标签: .net regex


【解决方案1】:

不确定这是否对您有用,因为它引用“发票”部分作为标记,以了解停止收集名字字段的位置,因此预计发票部分位于用户部分之后。我假设您想提取所有信息,而不仅仅是一个字段:

User Information:\s+Title:\s+(.*?)\s+Last Name:\s+(.*?)\s+First Name:\s+(.*?)\s+Invoice

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多