この質問は、以前に尋ねた質問(この質問)と非常によく似ていますが、少し変更する必要があります。
したがって、前の質問では、この文字列
Berkshire Hathaway Inc(ティッカー:BRK; NAICS:524126、511130、335212、445292、511110、442210; Duns:00-102-4314)Walt Disney Co(ティッカー:DIS; NAICS:713110、512110、711211、515120; Duns: 00-690-4700)
これらの値で2つの一致を作成します。
バークシャーハサウェイインク Walt Disney Co
ここで、一致にTicker:XXXまたは会社名を含めてTicker:XXXを優先するようにします。
したがって、上記の例では、次のように一致します。
ティッカー:BRK ティッカー:DIS
そしてこの例では:
Berkshire Hathaway Inc(NAICS:524126、511130、335212、445292、511110、442210; Duns:00-102-4314)Walt Disney Co(Ticker:DIS; NAICS:713110、512110、711211、515120; Duns:00-690- 4700)
結果は次のようになります。
バークシャーハサウェイインク ティッカー:DIS
前の質問の正規表現ソリューションを十分に理解していないため、このパターンに合うように正規表現を変更する方法を理解していると思います。
正規表現はC#で書かれています
ちなみに、以前の正規表現ソリューションは次のとおりです。
(?!\s*$)(.*?)(?:\([^)]*(?:(?:SIC|NAICS):[^)]*)+\)|$)
私は今これに変更する必要があると思います:
(?!\s*$)(.*?)(?:\([^)]*(?:(?:SIC|NAICS|Duns):[^)]*)+\)|$)
しかし、ティッカーを抽出するにはどうすればよいですか。ティッカーが存在する場合は、他の値よりもその値を選択しますか?