正規表現を用いた簡単なテキスト置換
簡単だよ( ^ω^)
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);
}
}
}