正規表現

(サンプル一覧を表示する)

FlashDevelop を使って、正規表現のテストをしてみました。

このサンプルは、trace() を使ってデバッグウインドウに
内容を表示しているので Flash の実行画面はありません。

ソースコード

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	
	/**
	 * 正規表現のサンプル
	 * @author Hikipuro
	 */
	public class Main extends Sprite 
	{
		/**
		 * コンストラクタ
		 */
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * 初期化イベント
		 * @param	e
		 */
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			regexTest1();
			regexTest2();
		}
		
		/**
		 * 正規表現テスト 1
		 */
		private function regexTest1():void
		{
			trace("--- regexTest1() ---");
			
			// 入力文字列
			var str:String = "aiueo test Test-123 test-4 aiueo";
			
			// 正規表現オブジェクト
			// - i を指定しているので、大文字小文字が区別されない
			var regExp:RegExp = /(test)-(\d+)/i;
			
			var match:Object = regExp.exec(str);
			
			if (match != null)
			{
				trace("入力文字列  : " + match.input);
				trace("一致した位置 : " + match.index);
				
				// 0 が 一致した部分全体、 1 以降が ( ) で囲まれたグループ
				for (var i:int = 0; match[i] != null; i++)
				{
					trace(i.toString() + " : " + match[i]);
				}
			}
		}
		
		/**
		 * 正規表現テスト 2
		 */
		private function regexTest2():void
		{
			trace("--- regexTest2() ---");
			
			// 入力文字列
			var str:String = "aiueo test Test-123 test-4 aiueo";
			
			// 正規表現オブジェクト
			// - i を指定しているので、大文字小文字が区別されない
			// - g を指定しているので、繰り返し検索できる
			var regExp:RegExp = /(test)-(\d+)/ig;
			
			var match:Object = regExp.exec(str);
			
			while (match != null)
			{
				trace("入力文字列  : " + match.input);
				trace("一致した位置 : " + match.index);
				
				// 0 が 一致した部分全体、 1 以降が ( ) で囲まれたグループ
				for (var i:int = 0; match[i] != null; i++)
				{
					trace(i.toString() + " : " + match[i]);
				}
				match = regExp.exec(str);
			}
		}
		
	}
	
}		

出力結果

外部リンク