• 締切済み

DelphiでのBRegExp.pasを使っての正規表現

Delphiにて、BRegExp.pasを使って正規表現を使おうとしております。 しかし、使い方がよくわかりません。 Perlでは、よく下記のような使い方をすると思います。 (/abcdef (\S+)\s/) && ($text0=$1); if(/abcd\t(\w+\/)(ef\w+)/){ $text1=$1; $text2=$2; } 上記に対応するようなことを、DelphiでもBRegExp.pasを使えばできるのでしょうか? 宜しく、お願いいたします。

noname#95859
noname#95859

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

bregexp.dllが作られてからもPerlの正規表現は拡張が続いているので、 bregep.dllがサポートしていない(=BRegExp.pasで使えない)拡張もありますが、 質問にあるような範囲なら問題なくできるでしょう。 ただし、PerlとPascalの違いによってロジックが多少変わることはあるでしょうけど。 使い方そのものは添付されているヘルプファイル見ればわかりませんか?

noname#95859
質問者

お礼

了解です。

関連するQ&A

  • Perlの正規表現に関する質問です。

    Perlの正規表現に関する質問です。 下記を実行した場合、$1~・・・には下記のどの正規表現に該当する値が入るの でしょうか? sub test{ my $text = shift; pos($$text) = undef; while ( $$text =~ m{ (\s*<) ( !-+ | !-+\s*(/|//)?\s*(.*?)\s*(/|//)?\s*-+ | (/)?([!a-z0-9\-]+)\s*((?:[a-z0-9\-]+\s*=\s*[\w\-/]+|[a-z0-9\-]+\s*=\s*".*?"|[a-z0-9\-]+\s*=\s*'.*?'|\s+[^<>]{2,})*)?\s*(/)? ) (>\s*) (.*?(?=(?:<!-+ | </?[a-z0-9\-!]+\s*(?:[a-z-]+\s*=\s*[\w\-/]+|[a-z0-9\-]+\s*=\s*".*?"|[a-z0-9\-]+\s*=\s*'.*?'|\s+[^>]{2,})*)\s*(/)?>?))? }sxgi ) { ・・・ }

    • ベストアンサー
    • Perl
  • 正規表現ですが・・・

    正規表現なんですが(Perlです。) Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt Bb_abcd.txt 上記のabcdの部分をマッチさせるために (?<=Aa_|Bb_).*(?=_aa|_bb|_cc|\.txt) としてみましたが、これでは Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt のabcd_aaやabcd_bbやabcd_ccとマッチしてしまいます。 なにかよい表現の仕方はありますか? まとめてマッチさせる表現が知りたいです。

  • 正規表現時の#の意味についてご教授お願いします

    お世話になります。 perlの正規表現で、下記の#の意味が分からないのですがどのような意味になるのでしょうか。 if m/^\s*#/; 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • Perlの正規表現

    Perlの正規表現についての質問です。 例) 899 YES Alt 0 0.000 pps 2.000 pps 4.000 pps 0 2 YES Alt 0 1.222 (space)-0.100 (space)3.000(space)0 103 NO Alt 0 3.333 % 0.000 % 0.000 % 0                ^^^^^ =====抜粋======================================== if($_ = ~ / Alt+(\s+)+0+(\s+)+(\S+)+(\s+)+(\S+)+(\s+)+(\S+)+(\s+)+(\S+)+(\s+)+(\S+)+(\s+)+(\S+)+(\s+)+(\S+){ print OUT "\n$5,"; ================================================= 上記のような文字列があるとして"^^^^^"だけを抜き出したい場合の正規表現はどのようにすればよろしいのでしょうか? 考えたif文では当たり前ですが2番目の(-0.100)が抜き出せません。また、検索できた順に抜き出し、出力したいので if文を二つ書くのは避けたいです。 どなたか教示ください。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 正規表現が読めない

    諸般の事情でperlスクリプトに手を入れることになりました。 perlについてはまったくの素人であることに加えて、正規表現が読めません。お恥ずかしいのですが、下記を読み下していただけないでしょうか。 (変数のリスト) = map{/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_} ($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); $tmpはカンマ区切りのテキストです。

    • ベストアンサー
    • Perl
  • Perl 正規表現に関して

    現在Perlにて正規表現を用い,アクセス者のログが納めてあるlog.datからデータを検索し集計するといったアルゴリズムです. ところが正規表現を用いたのは良いものの,アルファベット以外をパターンとして使用したとき,データを呼び出すどころか表示されない状況に陥ってしまいました. elsif($referer =~ /abcd/i) { $word2 = "abcd"; } 上記のコードは,パターンがアルファベットで構成されているため,正常にシステムが動作します. elsif($referer =~ /あいうえ/i) { $word2 = "あいうえ"; } しかし,上記のコードはパターンが平仮名で構成されているため,冒頭で記している問題が発生してしまいます. そこで (1)パターンにアルファベット以外のものは使えるのか. (2)パターンにアルファベット以外のものを使いたいときはどうすればいいのか. についてお教えください. また正規表現のほかに,文字列を検索し,頻度をカウントすることに長けているコードがございましたらお教え願います. 以上の内容で不明な点等ございましたら随時対応致します. 宜しくお願いします.

    • ベストアンサー
    • Perl
  • 正規表現

    変数$aのなかに変数$bが含まれていたらをperlの正規表現であらわすと どのようになるのでしょうか?if($a=~ /$b/)ではうまくいかないのですか?

    • ベストアンサー
    • Perl
  • Perl正規表現わかりますか?

    下記のPerl正規表現ですが、どんな意味か分かるでしょうか? $var =~ s!/([^/]+|~(\.\.))/\.\./!/!g 参考書も読んでみたのですが分かりませんでした(セットされている文字列にどんなマッチング、置換をしているのでしょう) お分かりの方いれば、よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現について

    正規表現につての質問です。 今テキストファイルに下記のような漢字と数字が並んでいます。 そこから、漢字一文字だけの行を抜き出してきたいのですが、うまくいきません。PerlとCygwinを使用しています。よろしくお願いします。 人584504122 情報542701982 商品510342870 日414551872 方347990908 者347069359 中339925319 表示330177395 的324961911 私323727263 検索291502623 見ル285226619 場合275698771 一256241900 利用253752129 年240881734 時239273060 前228762989 店225241510 登録224560617   ・   ・    ・ プログラム中身 #! /usr/bin/perl -w #テキストから指定した単語などとマッチすると、 #その単語を含んだ文を抜き出してくる。 while(<>){ s/ +//g; s/\s+//g; if(/^([亜-煕]|[一-龠]){1}[0-9]*/){ print; print "\n"; } }

  • perlで正規表現(正の数)

    perlで正の数の数値を判定したいと思っています。 $testが0か1しか許容したくないので下記のように正規表現を作成しました。しかし、「-1」 を$testに設定すると何故か下記のif文をスルーしてしまいます。どのようにすればよいでしょうか? if($test !~ /[0-1]/) { # エラー }

    • ベストアンサー
    • Perl