Delphi TRegEx错误?

时间:2012-03-30 15:42:19

标签: regex delphi

我尝试使用该来源验证正则表达式'3a'的输入'[_a-zA-Z][_a-zA-Z0-9]*'

len := TRegEx.Create([_a-zA-Z][_a-zA-Z0-9]*).Match('3a').Length;

我预计0变量len,但它是2。这是对的吗?

1 个答案:

答案 0 :(得分:1)

这不是你真正的代码。首先它不编译。你省略了引号。如果我们解决了这个问题,那么我们就有了:

len := TRegEx.Create('[_a-zA-Z][_a-zA-Z0-9]*').Match('3a').Length;

但是,如您所述,返回值1而不是2。此返回值是正确的,因为a匹配[_a-zA-Z],然后输入字符串结束。

我希望你有错误的正则表达式。也许你应该使用

^[_a-zA-Z][_a-zA-Z0-9]*$

^匹配输入字符串的开头,$将结尾匹配。据推测,输入来自源代码标记器。

所以结论是Delphi正则表达式代码中没有明显的错误来自这种模式和输入。