我有这个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;
答案 0 :(得分:5)
以下是正则表达式的简化版本:
/(?:^|\s)(?:Corporation|Corp|Inc|Incorporated|Company|LTD|PLLC|P\.C)\.?$/ig;
{0,1}
可以替换为?
(^|$)
。您需要在匹配后立即开始一行或一行结束。这在功能上与要求匹配位于行的末尾相同,所以我只是将其替换为$
。(?:...)
,除非您需要抓取该部分匹配项。它们更有效率。所有这一切,您的原始模式应该在一行的末尾匹配P.C.
。问题可能与您的输入数据或您使用正则表达式的方式有关。