2013-04-06 80 views
0

我想在FPC(Free Pascal中)使用正则表达式模式 - 更多在这里:http://wiki.freepascal.org/IDE_regular_expressions匹配正则表达式通过简单的两种情况:

无论其!我无法确定如何匹配3or4小写字母(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}?'); 

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

+1

欢迎来到StackOverflow。你迄今为止尝试过哪些方法不适合你?你正在搜索的一些示例字符串是什么以及你想要得到的结果是什么?这真的不是一个网站,“这是一个链接到文档,这是我想要做什么的一般概念,得到了一个答案?”输入问题。 (实际上,你甚至从来没有问过任何问题。)请编辑你的问题以提供具体细节,以及你试图解决它的努力。谢谢。 – 2013-04-06 01:14:02

+1

您发布的链接是指FreePascal IDE中的正则表达式(该链接指向'IDE_regular_expressions'),而不是FreePascal代码。你有链接到实际的FP运行时库正则表达式单元? – 2013-04-06 03:14:21

+0

gpc/gnu pascal与Free Pascal/fpc完全无关。较新的特色是由安德烈·索罗金在单位正则表达式中着名的tregexpr。我无法帮助,因为我没有真正正确表达。 – 2013-04-06 12:23:11

回答

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.