0
我尝试用源验证输入'3a'
为正则表达式'[_a-zA-Z][_a-zA-Z0-9]*'
:德尔福TRegEx错误?
len := TRegEx.Create([_a-zA-Z][_a-zA-Z0-9]*).Match('3a').Length;
我预计0
为len
变量,但它是2
。那是对的吗?
我尝试用源验证输入'3a'
为正则表达式'[_a-zA-Z][_a-zA-Z0-9]*'
:德尔福TRegEx错误?
len := TRegEx.Create([_a-zA-Z][_a-zA-Z0-9]*).Match('3a').Length;
我预计0
为len
变量,但它是2
。那是对的吗?
这不是你真正的代码。一开始它不会编译。你省略了引号。如果我们解决这个问题,那么我们有:
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]*$
的^
输入字符串的开头匹配,$
MATHES结束。推测该输入来自源代码标记器。
所以结论是,在这个模式和输入的Delphi正则表达式代码中没有明显的错误。
一旦我遇到了问题,并想“嘿,我可以使用正则表达式来解决这个问题”。然后,我有两个问题。 – 2012-03-30 17:25:29