2016/5/29 (日) 17:31:36 Mr.XRAY |
[TRegExprでの置換処理時、「\n」を改行文字として置換させるには]
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201605/16050007.txt
を読んで思い出したので.
正規表現で \n という文字列を検索する際,\n と指定しても無効です.
正規表現では \ は特別な意味を持つ文字で,メタ文字と呼ばれていいます.
メタ文字を検索の対象にするには,メタ文字の前に \ を付けます.
次のコードは,\n を検索して,改行文字である sLineBreak に置き換えます.
(\n は改行の意味なので...)
# 某掲示板の質問の文章は,私の能力では理解できません.
implementation
uses
SkRegExpW;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Text := 'テスト用\n\nのテキ\nスト';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
LRegExp : TSkRegExp;
LDestText : string;
LReplaceStr : string;
begin
LRegExp := TSkRegExp.Create;
try
LRegExp.Expression := '\\n';
LRegExp.IgnoreCase := True;
LReplaceStr := sLineBreak;
LDestText := LRegExp.Replace(Memo1.Lines.Text, LReplaceStr);
Memo1.Lines.Text := LDestText;
finally
LRegExp.Free;
end;
end;
|
|