比如有一个文本中,有一句 “你是第122名”,122是不确定的,有没有快速的方法能找出这一句?
最好是这样的,用 你是第*名,然后自动就把这一句读取出来了或者是读出122
最好是这样的,用 你是第*名,然后自动就把这一句读取出来了或者是读出122
解决方案 »
- 有关delphi的utf8,sha-1和base64
- delphi 中的cxdblookupcombobox控件 怎么把右边的三角号去掉
- 关于亮度和对比度的问题,如何用trackbar平滑调整?
- 如何实现在delphi实现SQL的导入导出
- Canvans上写文字,怎么去掉?
- 谈论面向对象设计
- 想覆盖原来的文件除了用rewrite外,用FileCreate可以吗
- 要求在ShellTreeView中打开文件的快捷方式,急,在线等!!!
- 关于Socket传送大量数据问题.请大家指导!
- 请问如何制作数据库的安装程序(在线等待)
- delphi中导入ActiveX Control的问题
- indy如何判断连接断开
------procedure TForm1.btn7Click(Sender: TObject);
var
reg : TPerlRegEx;
i ,j,k: Integer;
StrArr : TStringDynArray;
tmpStr : String;
pStr : WideString;
tsl : TStringList;
strQuery : String;
strcondition : String;
begin
StrArr := nil; pStr := edt4.Text;
tsl := TStringList.Create;
reg := TPerlRegEx.Create(nil);
try reg.RegEx := edt4.Text;
reg.Options := [preSingleLine];
reg.Subject := WideString(mmo3.Text);
tmpStr := '';
if reg.Match then
begin
repeat
tmpStr := tmpStr + reg.MatchedExpression + ' '; until not reg.MatchAgain ;
end;
mmo4.Lines.Text := tmpStr; finally
reg.Free;
tsl.Free;
end;
end;
function SearchIt(Src: PChar): PChar;
var
P: PChar;
label _notFound;
begin
P := AnsiStrPos(Src, PChar('你是第'));
if P = nil then goto _notFound;
Result := P; Inc(P, 6);
while P^ in ['0'..'9'] do Inc(P);
if (P - Result = 6) or (P <> AnsiStrPos(P, '名')) then goto _notFound; Exit; _notFound:
Result := nil
end;var
S: string;
begin
S := SearchIt('aaa你是第123名');//返回“你是第123名”
S := SearchIt('aaa你是第a123名');//返回空
ShowMessage(S);
end;