11/12/06 22:41:35.61
>>841のは再帰を理解できるような拡張した正規表現を使えないとダメだろ。
そんなのあるのか。
868:デフォルトの名無しさん
11/12/06 22:48:48.50
PCREは無限の括弧の対応が取れる ~ 再帰も、ネストも、あるんだよ.
URLリンク(swatmac.info)
正規表現の限界 @ Shibuya.pm
URLリンク(swatmac.info)
URLリンク(swatmac.info)
869:デフォルトの名無しさん
11/12/06 23:22:37.09
で、再帰が使えると>>854が懸念するようなことも解決できるの?
870:デフォルトの名無しさん
11/12/06 23:35:32.29
理解してないができるはずだろ。マッチしないとき、括弧が足らないなどのエラーが判明する。
再帰的パターン
どうすればカッコに括られた文字列とマッチできるか、という問題を 考えて見ましょう。
このとき、カッコは何回でもネストできるとします。
再帰が使えないとすると、パターンを用いて、せいぜい、ある一定の深さの ネストまでしかマッチできないでしょう。
任意の深さのネストを 処理することは不可能です。
Perl 5.6 では、正規表現において再帰を行う 実験的な機能が導入されています。
PCRE では、再帰という特殊なケースに対して専用のシーケンス (?R) が導入されました。
URLリンク(php.net)
871:デフォルトの名無しさん
11/12/06 23:46:03.39
出来るよ、このスレでこんな認知度低いほうが意外なくらい。
872:デフォルトの名無しさん
11/12/06 23:58:07.19
windowsで手軽にpeclの動作確認する方法ありますか。
873:デフォルトの名無しさん
11/12/07 00:00:50.43
xampp入れてPHPですかね。
874:デフォルトの名無しさん
11/12/07 00:03:36.96
認知度の話じゃなくて、項には全角も含まれるといわれている状態で、再帰でできるとか言ってるのが斜めってることに気づかないのかな。
「たとえばほげほげ+fooという文字列」
↑この中の項をどうやって判別するの。
875:デフォルトの名無しさん
11/12/07 00:07:35.69
全角や、英数のみはたいした問題でない。
どの文字を許可するかはそのつど変わる。
876:デフォルトの名無しさん
11/12/07 00:12:27.18
だから現状ではできない、でおk?
877:デフォルトの名無しさん
11/12/07 00:18:13.56
なんでよ?
文字コードの問題があるけど、たとえばUTF32などだったら英数も全角も同じバイト長で区別はない。
878:デフォルトの名無しさん
11/12/07 00:23:06.12
>>877
>>855でも書いたけど、式の始まりと終わり、項と項以外をどうやって判断するの?
体重+年齢と性別*5
このとき、何が項として抽出されるべきかを書いてみ?
べつに>>874でもいいけど。
879:デフォルトの名無しさん
11/12/07 00:25:53.18
項に使える文字はあらかじめ指定するんだろ。
たとえば[0-9a-z]としてあとで変更することもできる。
全角になったとしてもたいした問題でない。
880:デフォルトの名無しさん
11/12/07 00:26:54.45
>>878
こうわけるのが普通だろ。他にどう分けるんだよ。
体重 + 年齢と性別 * 5
881:デフォルトの名無しさん
11/12/07 00:29:23.51
対象文字列が式のみかどうかなんて書いてないよな。
882:デフォルトの名無しさん
11/12/07 00:31:54.36
対象文字列が式のみであるという前提を勝手につけるなら、わざわざ括弧の整合性チェックをする必要なんてないよな。
883:デフォルトの名無しさん
11/12/07 01:05:10.14
>>882
いつまで雑魚の相手をするつもりなんだ?
884:デフォルトの名無しさん
11/12/07 01:12:28.09
>>841
正規表現はマッチするだけ。置換処理はプログラミングの分野。はき違えてはいけない。
URLリンク(ideone.com)
885:デフォルトの名無しさん
11/12/07 01:24:06.45
項の部分は質問者さんが正規表現を作るのかな、>>859を読むとこう取れなくもないのだが。
>>850で「はっきりしないと書きようがない」と言われてるのにはっきりさせないから混乱するんだ。
886:デフォルトの名無しさん
11/12/07 01:53:13.54
項は仮に[a-z0-9]でいいだろ。
887:デフォルトの名無しさん
11/12/07 04:54:20.90
>>884
そんな手間かけてゴミレス付けんなよ。