我想为check1设置RegularExpressions。
string1可以更改为:
字符'D'和分号始终存在。
我设置了RegularExpressions1:='\ b(D#\;#)\ b';
但是RegularExpressions1无法正确检查string1。
在vb6中,这个RegularExpressions1 =“D#;#”。但我不知道那是在Delphi中吗?
答案 0 :(得分:3)
尝试
\bD\d*;\d*
\d*
表示“零或更多数字”。
顺便说一下,我已经省略了第二个\b
,否则如果分号后面没有数字,则匹配将失败(并且你说数字是可选的)。
如果通过“检查”表示“验证”整个字符串,则使用
^D\d*;\d*$
所有这些都假定D
和;
后只允许数字。如果情况并非如此,请编辑您的问题以澄清。
答案 1 :(得分:0)
假设两个数字至少需要一个数字,请使用此正则表达式:
\AD\d+;\d+\z
我更喜欢使用\A
和\z
代替^
和$
来匹配字符串的开头和结尾,因为它们始终只执行此操作。
在Delphi XE中,您可以在一行代码中检查此正则表达式是否与string1
匹配:
if TRegEx.IsMatch(string1, '\AD\d+;\d+\z') then ...
如果要使用多个字符串,请将TRegEx:
实例化无功 RE:TRegEx;
RegEx.Create( '\ AD \ d +; \ d + \ Z'); 对于ListOfStrings中的string1做 如果RE.IsMatch(string1)则......