【发布时间】:2012-04-04 17:07:11
【问题描述】:
这个问题与我之前提出的问题 (This Question) 非常相似,但我需要稍作改动。
所以在前面的问题中这个字符串
伯克希尔哈撒韦公司(代码:BRK;NAICS:524126、511130、335212、445292、511110、442210;Duns:00-102-4314)沃尔特迪斯尼公司(代码:DIS;NAICS:713110、512110、711211、5152: 00-690-4700)使用这些值创建 2 个匹配项:
伯克希尔哈撒韦公司 华特迪士尼公司现在我希望匹配项包含代码:XXX 或公司名称,首选代码为:XXX。
所以对于上面的例子,它会匹配:
代码: BRK 代码: DIS对于这个例子:
伯克希尔哈撒韦公司 (NAICS: 524126, 511130, 335212, 445292, 511110, 442210; Duns: 00-102-4314) Walt Disney Co (Ticker: DIS; NAICS: 713110, 512110, 711211, 0-65120; Duns:-0 4700)结果是:
伯克希尔哈撒韦公司 代码: DIS我想我只是不太了解上一个问题中的正则表达式解决方案,无法理解如何修改它以适应这种模式。
正则表达式是用c#编写的
顺便说一下,以前的正则表达式解决方案是:
(?!\s*$)(.*?)(?:\([^)]*(?:(?:SIC|NAICS):[^)]*)+\)|$)
我想现在应该改成这样:
(?!\s*$)(.*?)(?:\([^)]*(?:(?:SIC|NAICS|Duns):[^)]*)+\)|$)
但是如果 Ticker 存在,我如何提取 Ticker: 并选择该值而不是另一个值?
【问题讨论】: