我有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
答案 0 :(得分: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.
以下是运行测试应用程序的输出: