使用正则表达式匹配公司名称及对应代码的技术咨询
解决方案
改进后的正则表达式
针对你遇到的匹配问题,可使用以下正则表达式来覆盖多种格式的公司名称及对应代码:
((?:[A-Z]+|[A-Z][a-z]+)(?:\s(?:[A-Z]+|[A-Z][a-z]+))*)\s([A-Z]{1,5})
正则规则说明
(?:[A-Z]+|[A-Z][a-z]+):匹配单个公司名称单词,支持两种格式:[A-Z]+:全大写单词(如BDEC)[A-Z][a-z]+:首字母大写、后续小写的单词(如British、Limited)
(?:\s(?:[A-Z]+|[A-Z][a-z]+))*:匹配0个或多个“空格+公司名称单词”,支持多单词组成的公司名称(如British Defence Industry Directory、Goldman Sachs)\s:匹配公司名称与代码之间的分隔空格([A-Z]{1,5}):匹配1-5位大写字母的公司代码
匹配结果验证
将该正则应用到你的示例语句中,可成功提取以下内容:
- 公司名称:
British Defence Industry Directory,代码:BDEC - 公司名称:
BDEC Limited,代码:BDEC - 公司名称:
BDEC Limited,代码:BDEC - 公司名称:
BDEC,代码:BDEC - 公司名称:
Apple,代码:AAPL - 公司名称:
Visa,代码:V - 公司名称:
Goldman Sachs,代码:GS
补充提示
如果文本中包含HTML标签(如示例中的<em>),建议先提取标签内的纯文本内容,再使用上述正则匹配,避免标签干扰提取结果。
内容的提问来源于stack exchange,提问作者michael0196
相关产品推荐
相关产品推荐

