ツリー一括表示

Nomal 正規表現修飾子について /FAM (09/04/26(Sun) 19:49) [#7723]
Nomal Re[1]: 正規表現修飾子について / U D (09/04/29(Wed) 15:10) [#7738]
  └Nomal Re[2]: 正規表現修飾子について /FAM (09/04/29(Wed) 22:52) [#7739] 解決済み!


親記事 / ▼[ 7738 ]
/ 親階層)  正規表現修飾子について
□投稿者/ FAM 【114.189.0.69】(2009/04/26(Sun) 19:49:27)

    正規表現について調べていて正規表現修飾子にいきつき、そこで力尽きました。
    いくつか調べてもよくわからないことがあったので教えていただけないでしょうか?

    ・有効範囲は?
    マニュアルを見て正規表現修飾子の初期値が「gmk」だということはわかったのですが、一度設定したら以降の正規表現すべて再設定するまでその正規表現修飾子で検索するのでしょうか?
    それとも次の正規表現命令でのみ有効ですか?

    ・展開(計算)できるか?
    ネットで正規表現で検索してperlの正規表現を調べていたら置換文字列を「式」と見なすことができる正規表現修飾子の「e」があることがわかりました。
    マニュアルの正規表現の修飾子の説明には「e」がないようですが、他の手段で展開できるのでしょうか?
    ちなみにためしに『「222+555=777」の「(\d+)\+(\d+)=(\d+)」を「{$1+5}+{$2+5}={$3+10}」に正規表現置換』と書いてみましたが、想定していた結果(「227+560=787」)にはなりませんでした。

    どうかよろしくお願いします。

    *(2009/04/26(Sun) 19:50:39 編集[投稿者])

    *(2009/05/01(Fri) 19:26:29 編集 [管理者])
[ □ Tree ] 返信 削除キー/
[ □ Tree ] 返信

▲[ 7723 ] / ▼[ 7739 ]
/ 1階層)  Re[1]: 正規表現修飾子について
□投稿者/ U D 【121.94.13.200】(2009/04/29(Wed) 15:10:46)

http://www.undefin.net/
    > ・有効範囲は?
    > マニュアルを見て正規表現修飾子の初期値が「gmk」だということはわかったのですが、一度設定したら以降の正規表現すべて再設定するまでその正規表現修飾子で検索するのでしょうか?
    > それとも次の正規表現命令でのみ有効ですか?

    再設定するまでそのままでしょう。

    STR=『<body><p>
    test
    </p></body>』

    STRを`^.*$`で正規表現マッチして言う # デフォルト(gmk)

    正規表現修飾子は`gk`

    STRを`^.*$`で正規表現マッチして言う # ->空 (gk)
    STRを`^.*$`で正規表現マッチして言う # ->空 つまりgkのまま

    > ・展開(計算)できるか?

    Perlの正規表現が全て使えるわけではないと思います。
    確かにPerlについては「e: 置換文字列を式とみなし実行する。」という記述がありましたが、
    それはあくまで「Perlの式として」という意味ですよね?
    だったら、置換後文字列を「なでしこの式として」実行はできないと思います。

    少なくとも「{$1+5}+{$2+5}={$3+10}」の場合、文字列の展開が先に行われます。
    なでしこでは$で16進数を表すので、「{$1+5}+{$2+5}={$3+10}」は『6+7=13』に展開されて命令に渡されています。


    *(2009/05/01(Fri) 19:26:36 編集 [管理者])
[ 親 7723 / □ Tree ] 返信 削除キー/
[ 親 7723 / □ Tree ] 返信

▲[ 7738 ] / 返信無し
/ 2階層)  Re[2]: 正規表現修飾子について
□投稿者/ FAM 【114.189.0.69】(2009/04/29(Wed) 22:52:52)

    回答ありがとうございます。
    二番目のやつに関してはなんであの結果になるかわからなかったんですが、$1とかが16進数として解釈されちゃってたんですか。
    単に$が認識されなかったのかな〜、程度にしか思いませんでした。
    展開できないこともわかりましたしあきらめがつきました。

    一番目のやつは自分ではこの結果で正しいのか自信がなかったので助かりました。
    展開できないとなると正規表現修飾子を使う機会もそうそうなさそうですが、いつか必要となったときに活用したいと思います。

    *(2009/05/01(Fri) 19:26:46 編集 [管理者])
解決済み!
[ 親 7723 / □ Tree ] 返信 削除キー/
[ 親 7723 / □ Tree ] 返信


Pass/

BBS CGI RSS CGI
Child Tree RSS/SPAM対応版