正規表現とは何か

This entry was posted by on Friday, 18 July, 2008

http://blog.bugyo.tk/lyrical/2008/07/post_59.html perl の正規表現のような複雑なことをしなくても、この設問であれば後方参照マッチをつかって

/>\(==*\)#\1~/

でいけるような。 sed/awk のようなふつうの伝統的な UNIX コマンドでも余裕でマッチ可能(Bは言うまでもなく正規表現で書ける)。ただもちろん、後方参照マッチを使うとそれは理論的には正則言語ではありません。

こういったタイプの言語が正則でないことの証明には反復補題(ポンピング補題)が便利です。同じようにして「カッコの対応が取れている」といったことも正規表現では書けないことが示せます。

One Response to “正規表現とは何か”

  1. きむら(K)

    うわー、恥をさらしてしまいました orz