くだすれDelphi(超初心者用)その48 at TECH
[2ch|▼Menu]
186:ななしへたぐらま ◆XcB18Bks.Y
08/11/17 22:04:12
>>162
こんな時こそ正規表現ライブラリを使うべし。
正規表現ライブラリはいろいろありますけど今回はskRegExpで。
日本語のヘルプもあるので比較的使いやすいと思います。

そのものズバリのコードも書いてしまったのですが勉強にならないと思うので
今回は変換したい部分を特定するコードのサンプルだけ。

const
 cSample = 'I want to convert "→" and "&#rarr;" into right arrow!';
var
 exp: TSkRegExp;
 Converted: string;
begin
 Writeln('Sample:"', cSample, '"');
 exp := TSkRegExp.Create;
 try
  exp.Expression := '&#[0-9]+;|&#[A-Za-z]+;'; // 見つけたいパターンは「&#,0から9のどれかが1文字以上,;」または「&#,A〜Zかa〜zが1文字以上,;」
  if exp.Exec(cSample) then // 先頭からパターンに一致するところを探せ.もし見つかったなら…
   repeat
    Writeln('見つけた!: 「', exp.Match[0], '」 ', exp.MatchPos[0], '文字目から', exp.MatchLen[0], '文字分');
   until not exp.ExecNext; // 次を探せ.見つからなかったらループを抜ける.
 finally
  exp.Free;
 end;
end.

>>168-169
as 演算子によるインターフェースへのキャストはGUIDを付けないと使えないみたいです。
でも今回はそれが原因ではない気もします。



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4250日前に更新/151 KB
担当:undef