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