In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

正規表現を用いた簡単なテキスト置換

簡単だよ( ^ω^)
Get Adobe Flash player
by undo 12 Jan 2011
    Embed
package
{
    import flash.display.Sprite;
    import flash.text.TextField;

    [SWF(width="465",height="465",backgroundColor='0xffffff')]
    
    public class RegularExpression extends Sprite
    {
        private var _tf:TextField;
        private var _source:String = '「wonderfl build flash online」(以下、wonderfl)は、プログラム(ActionScript)によるコミュニケーション機能をもった\nFlashクリエイターのソーシャル・ネットワーキング・サービスです。';
        
        public function RegularExpression()
        {
            init();
        }
        
        private function init():void
        {
            this._tf = addChild(new TextField()) as TextField;
            this._tf.wordWrap = true;
            this._tf.x = this._tf.y = 10;
            this._tf.width = this._tf.height = 450;
            this._tf.text = '\n' + '変換前のテキスト:\n\n' + this._source;
            
            go1();
            go2();
            go3();
        }
        
        /*
         * 正規表現で文字列を指定するには /と/の間に文字列を指定します。
         * 以下の処理1の場合、最初にヒットした文字列だけを置換します。
         */
        private function go1():void
        {
            this._tf.appendText('\n\n-----\n処理1:"wonderfl"を"ワンダフル"に1回だけ置換');
            
            var regexp:RegExp = /wonderfl/;
            var result:String = this._source.replace(regexp, 'ワンダフル');
            this._tf.appendText('\n\n' + result);
        }
        
        /*
         * 最初にヒットした文字列だけでなく、その後出現する全てを処理する場合はgを付けます。
         */
        private function go2():void
        {
            this._tf.appendText('\n\n-----\n処理2:すべての"wonderfl"を"わんだふる"に置換');
            
            var regexp:RegExp = /wonderfl/g;
            var result:String = this._source.replace(regexp, 'わんだふる');
            this._tf.appendText('\n\n' + result);
        }
        
        /*
         * 「"abc"もしくは"xyz"のどちらか」を指定するには|を使います。
         */
        private function go3():void
        {
            this._tf.appendText('\n\n-----\n処理3:すべての"Flash"もしくは"flash"を"インタラクティブ"に置換');
            
            var regexp:RegExp = /Flash|flash/g;
            //var regexp:RegExp = /(F|f)lash/g; というような書き方もできます。
            
            var result:String = this._source.replace(regexp, 'インタラクティブ');
            this._tf.appendText('\n\n' + result);
        }
    }
}