小弟要写一段procedure/function,如标题所说,在字符串里搜索所有的email地址(可以假设这些email都是正确的),并自动替换做指定的email(email B)
小弟思路有限,只知道在字符串里搜索@,但并不知道如何获得一个完整的email并且将其替换,希望大大们指点一下。谢谢。
50大洋立刻奉上
小弟思路有限,只知道在字符串里搜索@,但并不知道如何获得一个完整的email并且将其替换,希望大大们指点一下。谢谢。
50大洋立刻奉上
解决方案 »
- 请问在DELPHI中如何知道哪些数据被修改过?并且只保存当前被修改过的记录?
- 寻求DELPHI一个单元文件
- 不允许从数据类型money到varchar的隐性转换,请使用convert函数来运行此查询
- 为何报表打印预览中只看到一条记录
- 能在memo里面实现ctrl-c,ctrl-v的功能吗?能给代码吗?
- 为什么我的数据库不能写进东西去啊!!急
- Delphi?
- 请教!数据导入菜鸟问题
- 讨论:做activeform和dcom应用服务器连接问题
- 如何用DELPHI向INTERBASE数据库添加数据???抓虫呀,用在SQL中没问题,在IB中就是不可以。
- cadimportvcl 5.25版,谁要?
- 開開心過端午節(2)!! (liangpei2008 搶不到SF沒分,哈哈)
比如:
[email protected]
每个Email地址是独立的一行,或者:
[email protected] other word
地址前后有一个空格什么的,总之如果就一个@特征符是没办法实现你的功能啦...
emls:string;
deli:TStringList;
i:Integer;
begin
//地址样例
emls := '[email protected] [email protected] [email protected] [email protected] [email protected]';
//用空格分割
deli := TStringList.Create;
deli.Delimiter := ' ';
deli.DelimitedText := emls;
//显示分割的效果
for I := 0 to deli.Count - 1 do
ShowMessage(deli[i]);
//显示替换的效果
for I := 0 to deli.Count - 1 do
begin
if deli[i] = '[email protected]' then
deli[i] := '[email protected]';
ShowMessage(deli[i]);
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
sl: TStringList;
i: integer;
AText: String;
begin
AText:= 'asdf fdasdf [email protected] fda [email protected] aseec';
sl:= TStringList.Create;
try
sl.Delimiter:= ' ';
sl.DelimitedText:= 'asdf fdasdf [email protected] fda [email protected] aseec';
for i:= 0 to sl.Count - 1 do
if AnsiPos('@',sl.Strings[i]) <> 0 then sl.Strings[i]:= '[email protected]';
AText:= '';
for i:= 0 to sl.Count - 1 do
AText:= AText + sl.Strings[i]+ ' ';
showmessage(AText);
finally
sl.Free;
end;
end;
// sl.DelimitedText:= 'asdf fdasdf [email protected] fda [email protected] aseec';
//可以改成
sl.DelimitedText:= AText;
....
//最后的showmessage(AText);就是你所要的string. sl不是你所要的!