用于删除空格和随机尾随字符的正则表达式

时间:2017-03-27 08:35:02

标签: regex

我成功验证了ID,例如:

ZFA1G2H34J5K6L7P5

使用此正则表达式:

([a-h,A-H,j-n,J-N,p-z,P-Z,0-9]){17}$

此ID有时会损坏(来自OCR进程),因此以前的正则表达式不起作用。我需要支持最常见的腐败方式,即ID中有空格:

ZFA1G2H34 J5K6L7P5

正则表达式应该删除空格并仅组成ID的允许的17个字符。

请注意我不能使用脚本(例如.replace),因为使用此正则表达式的软件不支持它。

作为奖励,有时ID包含我想删除的尾随字符:

ZFA1G2H34 J5K6L7P5 ...ç

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式之一来验证查询:

^(?:(?![iIoO])[ ç0-9a-zA-Z]){17,}$
^([ ça-hA-Hj-nJ-Np-zP-Z0-9]){17,}$

然后,您可以使用以下正则表达式仅匹配您喜欢的字符:

(?:(?![iIoO])[0-9a-zA-Z])
[a-hA-Hj-nJ-Np-zP-Z0-9]

不要在,这样的集合中使用[A-Z,a-z],因为逗号实际上是集合的一部分,而不是字符范围之间的分隔符。