正则表达式验证公司名称

时间:2013-03-01 16:44:05

标签: regex

我有这个RegEx来验证一些东西,不幸的是它不会验证P.C.只有P.C - 我尝试在每个时期添加{0,1}但它仍然无法验证。有什么想法吗?

(可读性的新行字符)

/(^|\s)Corporation\.{0,1}(^|$)|
 (^|\s)Corp\.{0,1}(^|$)|
 (^|\s)Inc\.{0,1}(^|$)|
 (^|\s)Incorporated\.{0,1}(^|$)|
 (^|\s)Company\.{0,1}(^|$)|
 (^|\s)(^|$)|
 (^|\s)LTD\.{0,1}(^|$)|
 (^|\s)PLLC\.{0,1}(^|$)|
 (^|\s)P\.{0,1}C\.{0,1}(^|$)/ig;

1 个答案:

答案 0 :(得分:5)

以下是正则表达式的简化版本:

/(?:^|\s)(?:Corporation|Corp|Inc|Incorporated|Company|LTD|PLLC|P\.C)\.?$/ig;
  • {0,1}可以替换为?
  • 可以通过一些分组来消除重复。
  • 这没有多大意义:(^|$)。您需要在匹配后立即开始一行或一行结束。这在功能上与要求匹配位于行的末尾相同,所以我只是将其替换为$
  • 当您需要对事物进行分组时,请使用非捕获组(?:...),除非您需要抓取该部分匹配项。它们更有效率。

所有这一切,您的原始模式应该在一行的末尾匹配P.C.。问题可能与您的输入数据或您使用正则表达式的方式有关。