- ベストアンサー
正規表現で文字クラスの引き算
- 正規表現の文字クラスについてお聞きします。
- [0-6]の中から3~5を除いた指定方法について、Perlと.NETの違いを教えてください。
- Perlにおいても同じような引き算の指定方法はあるのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- VB2005で、正規表現を使いたい
VB2005で、正規表現を使いたいのですが、Basp21など使わずに.NET標準で備わっているPerl互換のようなものはありますか? VBで正規表現に詳しいサイトや書籍などありましたらご教授ください。
- ベストアンサー
- Visual Basic
- 秀丸の正規表現はどの流派に属しているのですか?
秀丸エディタ64 (バージョン8.20)を使用しています。 秀丸の正規表現は、どういった流派(?)の流れを汲んでいるのでしょうか?よく、○○互換の正規表現という言葉がありますよね。Perl互換、.NET互換など、、、Java、C、そのほかの言語/プラットフォームで秀丸の正規表現に最も近いのは何でしょうか、教えてください。
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現のサンプル豊富なサイト
正規表現の素人です。 サンプル豊富なサイトで勉強させていただきたいのですが、適当なサイトをご紹介いただけないでしょうか。 #perlはわかりません。 #aspのコンポネントでperl互換の正規表現を利用するための勉強。 #aspも初心者レベル。
- ベストアンサー
- Perl
- 正規表現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
お礼
ありましたね、文字プロパティのユーザー定義! これで行けると思います。 #! perl # regtest.pl -- 正規表現のテスト while(<DATA>) { chomp; print "$_ matches /\\p\{p01256\}/\n" if /\p{p01256}/; } sub p01256 { return<<'EOF'; +0030 0036 -0033 0034 EOF } __DATA__ 0 1 2 3 4 5 6 7 8 9 => 0 matches /\p{p01256}/ 1 matches /\p{p01256}/ 2 matches /\p{p01256}/ 5 matches /\p{p01256}/ 6 matches /\p{p01256}/ でバッチリです。 どうもありがとうございます!
補足
下のお礼の続きです。 文字プロパティが定義できることは知ってたんですが、マイナスで削除できるところは知りませんでした。 ややこしいですが便利ですね。 本当にありがとうございます。