0

我想为检查 string1 设置正则表达式。

string1 可以更改为:

  • string1:='D1413578;1038'
  • string1:='D2;11'
  • string1:='D16;01'
  • ……

在 string1 中只有字符 'D' 和分号始终存在。

我设置 RegularExpressions1 := '\b(D#\;#)\b';

但 RegularExpressions1 无法正确检查 string1。

在 vb6 这个 RegularExpressions1="D#;#"。但我不知道那是在德尔福?

4

2 回答 2

3

尝试

\bD\d*;\d*

\d*意思是“零个或多个数字”。

顺便说一句,我省略了第二个\b,否则如果分号后面没有数字,匹配就会失败(你说这个数字是可选的)。

如果“检查”是指“验证”整个字符串,则使用

^D\d*;\d*$

D所有这些都假设在和之后只允许使用数字;。如果不是这种情况,请编辑您的问题以澄清。

于 2010-10-22T13:03:54.073 回答
0

假设两个数字都需要至少一个数字,请使用此正则表达式:

\AD\d+;\d+\z

我更喜欢使用\Aand\z而不是^and$来匹配字符串的开头和结尾,因为它们总是这样做。

string1在 Delphi XE 中,您可以在一行代码中检查此正则表达式是否匹配:

if TRegEx.IsMatch(string1, '\AD\d+;\d+\z') then ...

如果要使用多个字符串,请实例化 TRegEx:

var RE: TRegEx;

正则表达式.Create('\AD\d+;\d+\z'); 对于 ListOfStrings 中的 string1 执行 if RE.IsMatch(string1) then ...

于 2010-10-26T12:44:01.097 回答