Visual Basic - RegEx - 总长度检查无论匹配数量

时间:2015-09-22 07:59:40

标签: regex vba

我有以下问题:

这是我的RegEx-Pattern:

\d*[a-z A-Z][a-zA-Z0-9 _?!()\/\\]*

它允许除了数字之外的任何东西,如:1,11,111左右。

我的问题:无论匹配如何,我如何设置输入的总长度?

我在每场比赛之前用{1,30}之类的几个选项尝试了它,然后我把正则表达式放在一个带()然后{1,30}的组中,但它仍然无效。

如果有人可以帮助我,我会很感激:)。

允许字符串:

Group1
Group 1
1Group
Group!?()\/
Group !()\?!
a1 a1 a1 a1

不允许:

1
11

等等。匹配后{1,30}限制我输入匹配的次数。我想知道的是:我如何设置上述RegEx的最大长度,就像在30个字符之后无论匹配都达到输入?

1 个答案:

答案 0 :(得分:0)

为了仅禁用数字字符串输入,您可以使用否定前瞻(?!\d+$)并设置输入限制,使用限制量词 {{1} }:

{1,30}

请参阅demo

请注意,如果您计划匹配整个字符串,则需要使用锚点:(?!\d+$)[a-zA-Z0-9 _?!()\/\\]{1,30} 在开头将正则表达式锚定到字符串的开头,^将在最后锚定

$

请参阅another demo