• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現で文字クラスの引き算)

正規表現で文字クラスの引き算

pick52の回答

  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

0~2と6なら [0-26] と書きます。 > Perl が機能の豊富さで他の言語に負けるのはめずらしいケースなので、 そもそも、Perlは正規表現を実装している言語の中では古い方です。 現在、正規表現に対応している言語の大半はPerlの正規表現を参考に 作られています。 (そのため、Perlの正規表現互換の記述である場合が多いです) 一方で、古いために新しい要求などがでてきても仕様が古いために 対応されていません。 新しい言語ではその辺を独自に改良している場合があります。 しかし、お書きになっているような書き方よりPerlのような書き方の 方がずっと簡単でシンプルだと思いますが...。

TYWalker
質問者

お礼

ありがとうございます。 たぶん見方が違うんだと思うんですが、Perl の正規表現はだらしないほど拡張しまくっているように思えます。 たとえば (?<=PATTERN) のような文字を消費しないパターンとか、パターンを再帰させてカッコの対応にマッチさせるようなのは、昔なかったような? 気がします。 とまれ、確かに、上の書き方はシンプルではありませんね。 状況を説明すると、.NET と Perl で同じ処理を書いていて、.NET で書いた人がくれたパターンが Perl で動かなかったという感じです。 マーその作業の体制が???という話はあるんですが・・・(^^;

関連するQ&A

  • VB2005で、正規表現を使いたい

    VB2005で、正規表現を使いたいのですが、Basp21など使わずに.NET標準で備わっているPerl互換のようなものはありますか? VBで正規表現に詳しいサイトや書籍などありましたらご教授ください。

  • 秀丸の正規表現はどの流派に属しているのですか?

    秀丸エディタ64 (バージョン8.20)を使用しています。 秀丸の正規表現は、どういった流派(?)の流れを汲んでいるのでしょうか?よく、○○互換の正規表現という言葉がありますよね。Perl互換、.NET互換など、、、Java、C、そのほかの言語/プラットフォームで秀丸の正規表現に最も近いのは何でしょうか、教えてください。

  • MFCで正規表現

    Visal Studio 2005のC++で、MFCアプリとして、正規表現を行う簡単なプログラムを書きたいのですが、方法がわかりません。 できれば、perl互換が良いですが、MFCで一般的なものでかつ、 高速で正規表現の処理をさせたいので64bitでコンパイルしても問題ない ものが知りたいです。 ちなみにVBのRegExpとPerlで正規表現は使ったことがありますので、正規表現自体は多少知っております。 MFCでどのように記述するかが知りたいです。 よろしくお願いいたします。

  • VB6でPerl互換の正規表現を使いたい

    VB6でperl互換の正規表現を使いたいのですが可能でしょうか?

  • 正規表現が読めない

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

    • ベストアンサー
    • Perl
  • 正規表現のサンプル豊富なサイト

    正規表現の素人です。 サンプル豊富なサイトで勉強させていただきたいのですが、適当なサイトをご紹介いただけないでしょうか。 #perlはわかりません。 #aspのコンポネントでperl互換の正規表現を利用するための勉強。 #aspも初心者レベル。

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

    .NETで正規表現を使いたいのですが、Perl互換の正規表現を処理するサンプルが知りたいのですが、どうすれば良いのでしょうか? あと、.NETで全てを網羅している辞書みたいな書籍を探しているのですが知っている方教えてください。 .NETは名前空間を理解したら、OKというものでしょうか? 素人で申し訳ありません。

  • 正規表現eregとpreg

    pregがperl互換の正規表現というのは分かったのですが、eregとpregは使い分ける用途などがあるのででしょうか? あるhtmlから<a herf="--">タグを抜く作業に苦労していまして、調べるとどちらも使われているようで、正規表現を勉強するのにも戸惑っています。 せひ宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPで正規表現を使った対象データを全て取り出した

    PHPで正規表現を使った対象データを全て取り出したいのですが、 echo ($matches); にしても「Array」しかでないし、、 var_dump($matches); で確認しても意図するものが取れておりません。。 正規表現で取りだしたい箇所は hrefの「100065」と「100066」です。 これはテスト用に作っているので2個ですが、本来は 30個程度対象箇所があります。 何か正規表現の記述が間違っていると思いますが、ご指摘願います。。 ・プログラム preg_match_all( "(/abcNo=(.*?)&ckFlg/)", $_getHTML, $matches); var_dump($matches); ・var_dumpしたブラウザの表示内容 array(2) { [0]=> array(0) { } [1]=> array(0) { } } 補足: $_getHTML は既にダミーで用意したHTMLを読み込んだものです。 $_getHTML で読み込んでいるファイルの中身です。 <html> <body> <a href="abcNo=100065&ckFlg=1"></a> <a href="abcNo=100066&ckFlg=1"></a> </body> </html>

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

    すみません、前回「正規表現について」でお世話になりました者です。 前回の分は解決したのですが、それに関連してもう少し教えてください。 data.txt---------------------------------------- aaabbbccc aaadddccc aaaeeeccc ------------------------------------------------ test.pl----------------------------------------- #!C:\Perl\bin\perl use CGI; my $q = CGI->new; $q->charset('Shift_JIS'); print $q->header(-type => "text/html"); my $line=0; open(IN,"<data.txt"); open(OUT,">output.txt"); while(<IN>){ if ($line++==0){ $output1="$1" if/aaa(.*?)ccc/;} s/aaa(.*)ccc/$1/ if (?aaa(.*)ccc?); print OUT; } close(OUT); close(IN); print $output1; ------------------------------------------------ とすることで、得られたい結果である、 output.txt-------------------------------------- bbb aaadddccc aaaeeeccc ------------------------------------------------ IEでの表示-------------------------------------- bbb ------------------------------------------------ となりました。そこで今回教えていただきたいのは、 data.txt---------------------------------------- <空行> aaabbbccc aaadddccc aaaeeeccc ------------------------------------------------ というようにdata.txtのはじめが空行の場合にも、 上記と同じような結果を得たいです。output.txtの はじめは空行になっても構いません。得られる文字として、上と同じ結果がほしいです。どうしたらよいでしょうか?よろしくお願いします。

    • ベストアンサー
    • Perl