正则表达式 - 公司名称

时间:2013-04-16 07:10:02

标签: regex

我有一个纯文本,需要提取公司名称。这是一份巨大的文件,包括公司名称,财务报告和大量文本。这些公司名称示例

  • 大洗衣,a。
  • AVERA,s.r.o。
  • Airoflot Airlines,a.s。

甚至可以像这样制作正则表达式吗?我是正则表达式的初学者,并且不知道如何创建这个。谢谢你的帮助。

文字示例:

`AVERA有很多竞争对手,s.r.o。主要是Airflot Airlines,a .s.和大洗衣店,s.r.o。这些组织占据了市场的主要份额。 另一家公司:

一个。大公司,a.s。

湾较小的公司,s.r.o。

℃。巨大的公司,a.s。

4 个答案:

答案 0 :(得分:0)

目前的问题是,不可能为公司名称创建正则表达式。

如果你能够创建一个PATTERN,那将是可能的。

手段,例如公司名称总是:

  • 以大写字母
  • 开头
  • 有一个逗号
  • 逗号之后
  • 总是有一个“a.s.”或“s.r.o。”

所以,我在这里看到的困难是:

  • 逗号前有多少个词属于这个名字?
  • 是否总有逗号以下缩写?

名称总是难以匹配,因为名称几乎可以是所有内容,尤其是公司名称。

答案 1 :(得分:0)

您提供的示例遵循以下模式:([A-Z][A-Za-z]+ ?)+, (\w\.)+

匹配操作取决于您使用的工具。

例如在JavaScript中:

var line = "some name is Airoflot Airlines, a.s. in this line";
var m = line.match(/([A-Z][A-Za-z]+ ?)+, (\w\.)+/);
if (m.length) console.log(m[0]);

记录

"Airoflot Airlines, a.s."

但这不是一个非常可靠的解决方案:许多真实的公司名称不适合,更重要的是,这可能与不是公司名称的句子匹配。因此,这只能用作解决方案的帮助,该解决方案还包含某种验证(基于人工或词典)。

答案 2 :(得分:0)

我用这个

(?:\s*[a-zA-Z0-9,_\.\077\0100\*\+\&\#\'\~\;\-\!\@\;]{2,}\s*)*

它匹配所有a-z,A-Z,0-9和Quickbook支持的一些特殊字符。 https://community.intuit.com/articles/1146006-acceptable-characters-in-the-company-name-in-quickbooks-online

答案 3 :(得分:-1)

根据您给出的示例,此正则表达式将匹配

Big laundry, a\.s\.|AVERA, s\.r\.o\.|Airoflot Airlines, a\.s\.

诀窍是使用交替运算符|在一组字符串上

您可能希望考虑在公司名称中缺少标点符号和空格