通过简单的2种情况匹配正则表达式:

时间:2013-04-06 01:05:32

标签: regex expression pascal fpc

我正在尝试在FPC中使用正则表达式模式(Free Pascal) - 更多信息:http://wiki.freepascal.org/IDE_regular_expressions

无论其!我无法确定如何匹配3或4小写(a-z)字符链的第一次出现(如果有)。

然后我继续尝试相同的表达,但这次允许大写&编号为3或4字符串。

帮助感谢! :


例如(我尝试的事情+例子):

s := 'My Name';
// I want the 'ame' portion 1st since there exists a consecutive string of 3 lowercase chars.

// Attempts:    
SplitRegExpr('[[:alnum:]]{3,4}');
SplitRegExpr('[a-z]{3,4}');
SplitRegExpr('[[:alnum:]]{3,4}?');

对Ken White的回应,我认为这是正确的链接,不是吗? http://www.gnu-pascal.de/gpc/RegEx.html 我理解这些定义,但我没有看到如何正确地使用它们(例如我正在尝试做的)匹配模式以及从它们返回的内容。

1 个答案:

答案 0 :(得分:0)

这是一个提取所有3或4个小写字符序列的程序。

{$APPTYPE CONSOLE}
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF}

uses
  regexpr;

var
  expr: TRegExpr;

begin
  expr := TRegExpr.Create;

  expr.Expression := '[a-z]{3,4}';

  if expr.Exec('My Name is Bunny.') then
    repeat
      WriteLn(expr.Match[0]);
    until not expr.ExecNext;

  expr.Free;
  ReadLn;
end.