-2

我对 perlregex 有疑问,问题不在于这种使用是否在组件 perlregex txt 文件中,而是我想打开文件中包含不理解的字符,并且我知道我必须使用它在 perl perlregex 中搜索有多难,找到了文件的链接:http: //uploaded.net/file/ghhm0xv4,我确定问题出在文本文件中,因为我很好地使用了组件 perlregex,如果他们想查看有关如何使用的代码您可以在此处看到 perlregex 组件。

unit test;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, PerlRegEx;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    PerlRegEx1: TPerlRegEx;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function ReverseString(const S: string): string;
var
  i, len: Integer;
begin
  len := Length(S);
  SetLength(Result, len);
  for i := len downto 1 do
  begin
    Result[len - i + 1] := S[i];
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  conte: TMemoryStream;
  source: string;

begin

  conte := TMemoryStream.Create;
  conte.LoadFromFile('test.txt');
  SetString(source, PAnsiChar(conte.Memory), conte.Size);

  source := ReverseString(source);

  PerlRegEx1.Regex := '} 2 E R E H { (.*) } 2 E R E H {';
  PerlRegEx1.Subject := source;

  if PerlRegEx1.Match then
  begin
    Edit1.Text := PerlRegEx1.SubExpressions[1];
  end;

  end;

end.

问题是它没有找到任何东西,程序一般不会抛出任何错误,我怀疑问题出在文本文件中,而不是如果我必须对文件内容做些什么才能使用 perlregex

4

1 回答 1

1

这是一个与您的 RegEx 完美匹配的工作示例(带有测试文本)。如果它对您的文本文件不起作用,您需要检查文本文件的实际内容(例如,使用十六进制编辑器)以查看它实际包含的内容。

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, PerlRegex;

var
  RegEx: TPerlRegex;
  i: Integer;

begin
  RegEx := TPerlRegEx.Create;

  try
    { TODO -oUser -cConsole Main : Insert code here }
    RegEx.Subject := 'some test text before } 2 E R E H { This is found text } 2 E R E Htext after';
    RegEx.RegEx := '} 2 E R E H { (.*) } 2 E R E H';
    if RegEx.Match then
      WriteLn(RegEx.Groups[1])
    else
      WriteLn('No match found');
    ReadLn;
  finally
    RegEx.Free;
  end;
end.

这是运行测试应用程序的输出:

来自测试应用程序的示例正则表达式匹配

于 2013-07-15T00:47:30.220 回答