我尝试使用该来源验证正则表达式'3a'
的输入'[_a-zA-Z][_a-zA-Z0-9]*'
:
len := TRegEx.Create([_a-zA-Z][_a-zA-Z0-9]*).Match('3a').Length;
我预计0
变量len
,但它是2
。这是对的吗?
答案 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正则表达式代码中没有明显的错误来自这种模式和输入。