我正在尝试拆分一个看起来像这样的字符串:
International Bank for Reconstruction & Development (NAICS: 928120; SIC: 6081) World Bank (NAICS: 928120; SIC: 6081)
进入这个
International Bank for Reconstruction & Development World Bank
或其中任何一项:
International Bank for Reconstruction & Development International Bank for Reconstruction & Development (SIC: 6081) International Bank for Reconstruction & Development (NAICS: 928120)
进入这个
International Bank for Reconstruction & Development
可以有任意数量的比赛。
我尝试过一些东西,使用负面字符类不起作用:
[^\(NAICS: (\d+);\)]+
我正在使用C#Regex。
答案 0 :(得分:0)
将字符串分解为:
International Bank for Reconstruction & Development
World Bank
您可以使用:http://fiddle.re/bu4a。试试.Net!
^([^\(]+) \([^\)]+\) ([^\(]+) \([^\)]+\)
第一组将包含“国际重建与发展银行”,第二组 - “世界银行”
答案 1 :(得分:0)
如果你只想要一个正则表达式进行拆分,这可能会有效\([^)]*(?:(?:SIC|NAICS):[^)]*)+\)
你可以不分裂地做到这一点。我会采用find_all正则表达式方法。
(?!\s*$)(.*?)(?:\([^)]*(?:(?:SIC|NAICS):[^)]*)+\)|$)
Modifiers: s (dot allows newline) and g (global)
警告,这将允许在标题中允许非'(SIC:/ NAICS :)' 但是,他们不是权利人吗?
修改强>
道歉。这两个正则表达式可以缩短为
\([^)]*(?:SIC|NAICS):[^)]*\)
和
(?!\s*$)(.*?)(?:\([^)]*(?:SIC|NAICS):[^)]*\)|$)