喫茶XRAYトップページ

[スレッド全体
]

[3233] Re6:何かむなしい返信 削除
2010/4/5 (月) 08:03:40 DEKO
> どうして,そういうことをやらなければいけないかを
> 説明すべきだったんでしょうね.

そうやって資料が 100P 超えるんですね、わかります (w

結果だけを求めるヒトと、理屈を求めるヒト双方のニーズを満たすのは
意外に難しいですよね。

「こうするべきだ!」と結果を主張しても、「えー?こっちがいいんじゃ?」と
反論される事があり、結局主張の背景をイチから説明しなきゃいけなかったりとか。



正規表現に関しては、次のセッションでもちょっと時間を割いてあります。
出し惜しみしても仕方ないので、サンプルを上げておきますね。

uses
  ..., SKRegExpW;

  // SKRegExp による正規表現マッチング
  if ExecRegExp('[吉'#$20BB7']野[家屋]', Edit1.Text, []) then
    ShowMessage('Match')
  else
    ShowMessage('No match');


// SKRegExp によるマッチング文字列取得
var
 RegExp: TSkRegExp;
begin
 result := '';
 RegExp := TSkRegExp.Create;
 try
   RegExp.Expression := '[吉'#$20BB7']野[家屋]';
  if RegExp.Exec(Edit1.Text) then
   result := RegExp.Match[0];
 finally
  RegExp.Free;
 end;
end;

「入力された文字列が 某有名外食チェーン店の 名前に一致するか?」
のサンプルです。誤記にも対応しています。

1 番目の例は単純なマッチングです。
Create しないでいいので気軽に使えます。

2 番目の例で RegExp.ExecNext を使えば、 マッチする文字列が複数含まれる
場合に繰り返して文字列を抽出できます。

[3235] Re7:何かむなしい返信 削除
2010/4/5 (月) 09:22:51 Mr.XRAY
▼ DEKOさん

> 結果だけを求めるヒトと、理屈を求めるヒト双方のニーズを満たすのは
> 意外に難しいですよね。


御意!
そうなんですよね.発言の文章から,
「そういうことはいいから,とにかく動くコード」を欲しがる方も.
理屈を述べれば長くなり,読みたくない方だっているかも知れませんし.

一方で理屈を知れば納得の度合いも深まる場合もあるし.
難しいです.
理屈みたいのを書くのは苦手です.会話であれば自然に内容の修正やら
ができますが,文章となると,用語の間違いなどに気を使う必要もあるし.

># SKRegExp は Unicode 版 Delphi に最適化された
># 1.0x がリリースされています。


DLしちゃいました.

# Delphi2010の人はどうなったんでしょうね?


[3236] 正規表現返信 削除
2010/4/5 (月) 16:02:27 Mr.XRAY
▼ DEKOさん,今改めて見たら細かい配慮ですね.

>   if ExecRegExp('[吉'#$20BB7']野[家屋]', Edit1.Text, []) then

確かに[家屋]とした方が確実ですね.
今回のサイトの整備で結構修正漏れがあったのも,このあたりかな?

前にサイト移動の時は,Delphiでプログラム組んで,HTML全て読みこんで
リンクやHTMLコードの修正などを行いました.
今回は正規表現使ってみたんです.

あっ,そうそう,この掲示板をご覧の方で,この「正規表現」に馴染みの
ない方は,こう考えてください.
あれっ!? 用語がでてこない.認知症の始まり?

そうそう,検索の時のワイルドカードの発展したものと考えてください.
例えば *ABC と書けば語尾にABCがあるものを検索しますが,それをもっと
いろいろな検索条件を指定できるようになります.

HTMLコード等では,特定のタグだけではなく,タグ内の文字に条件をつけて
検索して置換,ということなどもできるようになります.
もちろん,行をまたがっての作業も可能です.


[3237] Re:正規表現返信 削除
2010/4/5 (月) 16:10:44 Mr.XRAY
> そうそう,検索の時のワイルドカードの発展したものと考えてください.

ここの図6もその一例です.gawk.exeというのを使用していますが.

http://mrxray.on.coocan.jp/Delphi/plSamples/552_PipeRedirect.htm#01


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82