パンくず
JavaScriptで正規表現
1回以上の繰り返し
概要
1回以上の繰り返しを指定する場合
構文
プラスで1回以上の繰り返しになります
デフォルトで最長マッチ:全体マッチ=パターン以降も含め全てにマッチ
プラスとクエスチョンマークの併用で最小マッチ:最小マッチ=パターン自体のみマッチ
例
<html> <head> <script language="javascript"> function executeRegExp(target,pattern) { regExp = new RegExp(pattern); document.write('input:target=' + target + ',pattern=' + pattern + '<br />'); if (target.match(regExp)) { document.write('<div style="color:green;">match as ' + target.match(regExp) + '</div>'); } else { document.write('<div style="color:red;">unmatch</div>'); } document.write('<br />'); } function execLoad() { document.write('<b>全体マッチ</b><br />'); pattern = 'test+'; executeRegExp('test1',pattern); executeRegExp('testt',pattern); executeRegExp('tes',pattern); executeRegExp('t',pattern); document.write('<b>最小マッチ</b><br />'); pattern = 'test+?'; executeRegExp('test1',pattern); executeRegExp('testt',pattern); executeRegExp('tes',pattern); executeRegExp('t',pattern); } </script> </head> <body onload="execLoad()"> </body> </html>
結果
全体マッチ input:target=test1,pattern=test+ match as test input:target=testt,pattern=test+ match as testt input:target=tes,pattern=test+ unmatch input:target=t,pattern=test+ unmatch 最小マッチ input:target=test1,pattern=test+? match as test input:target=testt,pattern=test+? match as test input:target=tes,pattern=test+? unmatch input:target=t,pattern=test+? unmatch