JScript+WSHでプログラミング基礎100本ノック その94~100 正規表現3

その94 文字数指定の検索

文字列を格納した配列を作成し、指定された文字を検索して、すべての要素をプロンプトに表示してください。

仕様

・変数 arrは下記の通りとすること
 ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs"]
・文字数が4文字の要素のみ表示すること

ヒント

・正規表現で文字の個数を指定する場合は {[数]} で可能

コード例

var arr = ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs"];

for(var i = 0; i < arr.length; i++){
	if(arr[i].search(/^.{5}$/) > -1 ){
		WScript.echo(arr[i]);
	}
}

出力結果

 spam
 eggs
続行するには何かキーを押してください . . .


その95 文字の置換

文字列を格納した配列を作成し、指定された文字を検索して、すべての要素をプロンプトに表示してください。

仕様

・変数 arrは下記の通りとすること
 ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs"]
・上記の文字列をアルファベットだけにすること

ヒント

・正規表現を用いた文字の置換は" str.replace(/[検索文字]/, [置換後の文字]) "で可能
・複数の文字を置換する場合は" str.replace(/[検索文字]/g, [置換後の文字]) "で可能

コード例

※別解は沢山あります

var arr = ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs"];

for(var i = 0; i < arr.length; i++){
	WScript.echo(arr[i].replace(/\d|\.|\s/g, ""));
}

出力結果

foo
bar
buz
hoge
fuga
piyo
spam
ham
eggs
続行するには何かキーを押してください . . .


その96 文字の置換

文字列を格納した配列を作成し、指定された文字を検索して、すべての要素をプロンプトに表示してください。

仕様

・変数 arrは下記の通りとすること
 ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"]
・上記の文字列を"01_foo","02_bar",…"10_aaa"とすること

ヒント

・正規表現を用いた文字の置換は" str.replace(/[検索文字]/, [置換後の文字]) "で可能
・複数の文字を置換する場合は" str.replace(/[検索文字]/g, [置換後の文字]) "で可能

コード例

※別解は沢山あります

var arr = ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"];

for(var i = 0; i < arr.length; i++){
	WScript.echo(("0" + (i+1)).slice(-2) + "_" + arr[i].replace(/\d|\.|\s|_/g, ""));
}

出力結果

01_foo
02_bar
03_buz
04_hoge
05_fuga
06_piyo
07_spam
08_ham
09_eggs
10_aaa
続行するには何かキーを押してください . . .


その97 文字の置換

文字列を格納した配列を作成し、指定された文字を検索して、すべての要素をプロンプトに表示してください。

仕様

・変数 arrは下記の通りとすること
 ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"]
・上記のうち、数値から始まる文字列をアルファベットだけにすること
・置換は行わないこと

ヒント

・matchを用いて正規表現で検索すると、()で囲った部分を配列に格納することができる。動きは下記の通り。

var arr = "1.hoge".match(/(\d)\.([a-z]*)/)

WScript.echo(arr[0]);		// -> 1.hoge
WScript.echo(arr[1]);		// -> 1
WScript.echo(arr[2]);		// -> hoge

コード例

var arr = ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"];

for(var i = 0; i < arr.length; i++){
	if(arr[i].search(/\d[\.|_][a-z]*/) > -1){
		var arrTemp = arr[i].match(/(\d)[\.|_]([a-z]*)/);
		WScript.echo(arrTemp[2]);
	}
}

出力結果

hoge
fuga
piyo
aaa
続行するには何かキーを押してください . . .


その98 文字の置換

文字列を格納した配列を作成し、指定された文字を検索して、すべての要素をプロンプトに表示してください。

仕様

・変数 arrは下記の通りとすること
 ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"]
・上記の文字列のうち、先頭に数字だったものの数字を+1してプロンプトに表示すること
・表示する場合は2-hoge、7-aaaといった形で"[数字]-[文字列]"とすること

ヒント

・文字列を数値に変える場合、"parseInt([文字列])"で変換可能

コード例

var arr = ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"];

for(var i = 0; i < arr.length; i++){
	if(arr[i].search(/\d[\.|_][a-z]*/) > -1){
		var arrTemp = arr[i].match(/(\d)[\.|_]([a-z]*)/);

		WScript.echo((parseInt(arrTemp[1]) + 1) + "-" + arrTemp[2]);
	}
}

出力結果

2-hoge
3-fuga
4-piyo
7-aaa
続行するには何かキーを押してください . . .


その99 文字の表示

文字列を格納した配列を作成し、指定された文字を検索して、すべての要素をプロンプトに表示してください。

仕様

・変数 arrは下記の通りとすること
 ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"]
・末尾が母音(a,i,u,e,o)の要素を先頭から3つまでを表示すること

ヒント

・なし

コード例

var arr = ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"];

var counter = 0;

for(var i = 0; i < arr.length; i++){
	if(arr[i].search(/[aiueo]$/) > -1){
		WScript.echo(arr[i]);
		counter++;
	}

	if(counter == 3) break;
}

出力結果

foo
1.hoge
2.fuga
続行するには何かキーを押してください . . .


その100 文字の表示

文字列を格納した配列を作成し、指定された文字を検索して、すべての要素をプロンプトに表示してください。

仕様

・変数 iarrは下記の通りとすること
 ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"]
・変数oarrに下記を格納すること
  1文字目がアルファベットであれば加工せず要素を格納する
  1文字目がアルファベット以外であれば、元の文字を格納した直後に、アルファベットのみの行を格納する
・oarrは["foo","bar","buz","1.hoge","hoge","2.fuga","fuga"…"6_aaa","aaa"]となる

ヒント

・なし

コード例

var iarr = ["foo","bar","buz","1.hoge","2.fuga","3.piyo"," spam"," ham"," eggs", "6_aaa"];
var oarr = []

for(var i = 0; i < iarr.length; i++){
	oarr.push(iarr[i]);
	if(!(iarr[i].search(/^[a-z]/) > -1)){
		oarr.push(iarr[i].replace(/\d|\.|\s|_/g,""));
	}
}

for(var i = 0; i < oarr.length; i++){
	WScript.echo(oarr[i]);
}

出力結果

foo
bar
buz
1.hoge
hoge
2.fuga
fuga
3.piyo
piyo
 spam
spam
 ham
ham
 eggs
eggs
6_aaa
aaa
続行するには何かキーを押してください . . .

この記事が気に入ったらサポートをしてみませんか?