使用TRegEx在Delphi中创建正则表达式

千兆位

我正在寻找在Delphi XE中创建一个正则表达式,该正则表达式将匹配一个数字,然后是一个小数点,然后是(基本上)无限个数字。

有效的例子:

2.334
150.2
0.23
3

无效的示例:

3..42
4-2.3
e5.64
3 145

小数点可以是可选的,整数也可以。

如何使用TRegEx在Delphi中做到这一点?

编辑:

到目前为止,这是我所拥有的:

enter function CheckCoefficientBoxesValidInput(InputtedTerm : TEdit) : boolean;

 var
  RegularExpression : TRegEx;
  Match : TMatch;

 begin
  RegularExpression.Create('[-+]?[0-9]*\.?[0-9]+');
  Match := RegularExpression.Match(InputtedTerm.Text);
  if Match.Success then
   begin
    ShowMessage('Success.');
   end;

 end;

编辑2:

尝试@DavidHeffernan的代码:

Function CheckCoefficientBoxesValidInput(InputtedTerm : TEdit) : boolean;
  var
    RegularExpression : TRegEx;
    Match : TMatch;
  begin
    CheckCoefficientBoxesValidInput := true;
    if not RegularExpression.IsMatch(InputtedTerm.Text, '[-+]?[0-9]*\.?[0-9]+') then
      CheckCoefficientBoxesValidInput := false;
  end;

不幸的是,这似乎不起作用。

戴维·赫弗南

您可能也想提供一个符号,以允许使用负数。这应该做。

[-+]?[0-9] * \。?[0-9] +

这不会识别科学符号,但是您并没有要求。True如果可以在输入文本内的任何位置找到该模式,则返回此值我不知道您的完整要求,但我想您想将其与整个输入字符串进行匹配。使用^$开始和锚线为结束。也许您也想允许在值周围使用空格:

^ \ s * [-+]?[0-9] * \。?[0-9] + \ s * $

测试这样的匹配项:

TRegEx.IsMatch(Input, '^\s*[-+]?[0-9]*\.?[0-9]+\s*$')

演示:

{$APPTYPE CONSOLE}

uses
  System.RegularExpressions;

procedure Check(const Input: string);
begin
  Writeln(Input, ' ', TRegEx.IsMatch(Input, '^\s*[-+]?[0-9]*\.?[0-9]+\s*$'));
end;

begin
  Check('2.334');
  Check('150.2');
  Check('0.23');
  Check('3');
  Check('3..42');
  Check('4-2.3');
  Check('e5.64');
  Check('3 145');
end.

输出

2.334是
150.2是
0.23是
3是
3..42假
4-2.3错误
e5.64虚假
3145假

Delphi正则表达式的参考在这里:http : //www.regular-expressions.info/

以及Delphi正则表达式类的文档:http : //docwiki.embarcadero.com/Libraries/en/System.RegularExpressions.TRegEx


打电话会容易得多TryStrToFloat

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式在正则表达式中查找正则表达式点

来自分类Dev

使用正则表达式在正则表达式中查找正则表达式点

来自分类Dev

使用正则表达式替换Delphi中的字符串

来自分类Dev

使用正则表达式替换Delphi中的字符串

来自分类Dev

正则表达式-在句子中创建连续词

来自分类Dev

从列名中的正则表达式创建向量

来自分类Dev

在php中创建正则表达式

来自分类Dev

忽略在正则表达式中创建单词的开头

来自分类Dev

Java从正则表达式的发现中创建变量

来自分类Dev

正则表达式匹配 Java 中的对象创建

来自分类Dev

使用正则表达式输入创建列表

来自分类Dev

使用正则表达式反向引用创建数组

来自分类Dev

AutoFixture使用正则表达式规则创建属性

来自分类Dev

使用正则表达式创建子集

来自分类Dev

使用Android模式创建正则表达式

来自分类Dev

如何使用正则表达式创建“块”

来自分类Dev

使用输入创建正则表达式

来自分类Dev

使用字典中的正则表达式从交易的列中创建类别的列

来自分类Dev

如何创建正则表达式

来自分类Dev

创建密码正则表达式

来自分类Dev

创建正则表达式

来自分类Dev

正则表达式的创建

来自分类Dev

创建正则表达式

来自分类Dev

使用正则表达式拆分在数组中创建2个空元素

来自分类Dev

使用JavaScript中的捕获组从变量创建正则表达式

来自分类Dev

使用字母和数字在asp.net中创建正则表达式

来自分类Dev

jQuery - 使用正则表达式在链接中创建一个粗体模式

来自分类Dev

如何创建正则表达式来测试表达式中的数字?

来自分类Dev

使用正则表达式在PhpStorm中查找/替换

Related 相关文章

热门标签

归档