こんにちは。
恩師に昔、正規表現を覚えるといいと言われました。
本日とうとうぶち当たったのでメモ。
\w 「任意の英数文字、またはアンダースコア 1 文字」にマッチ
\s 空白にマッチ
\d 数値 [0-9]にマッチ
またそれぞれ大文字は否定になる
ex) \d\d は2桁の数値
[]は[]内にある任意の1文字
繰り返し
{n,m} (n回からm回繰り返す)
{n,} (n回以上繰り返す)
{n} (n回だけ繰り返す)
メソッド
.test() マッチさせたいパターンが文字列中にあればtrue,なければfalse
.search() マッチした文字列の位置(数値)を返す 先頭は0(ない場合は -1)
量化
? 直前の表現が0個か1個あることを示す
- 直前の表現が0個以上あることを示す
- 直前の表現が1個以上あることを示す
行末の空白削除方法は+$
でタブを含む場合は[/t]+$
置換メモ:
空白行を削除 ^\n 「行頭の」「改行」 ・・・先頭が空白だと空行と判断される
行頭に文字を追加 ^ 、置換したい文字
なのですが、最後の問題でつまづいています・・・。
var regexp = /^Study(\w\d){3,}$/;
var str =
var result = regexp.test(str);
このregexpの内容を、resultで表示されるように。
という問題なのですが、
/^ $/
は囲まれている中身を全て表示させる。
{3,}
は3回以上繰り返す
\w
は単語
\d
は任意の数字
しかしこの(/w/d)
が理解できず・・・。
Study1Study1Study1も
StudyStudyStudy111も
StudyStudyStudyも
StudyStudyStudy1もだめ。
(がむしゃらに打ち込んでました)
ちょっとこれはネット探しても解決できず。
(\w\d)は\wと同意義というものは見つけましたが
結局は解答には至らずです。
お手上げ状態。
上記編集
「任意の英数文字またはアンダースコア1文字 + 数字1文字」なので計2文字にマッチ
正規表現はできるとかなりいいと聞くだけに悔しいです。
どなたかご教授していただけると幸いです。
+覚えておいたほうがいい正規表現 /~ とか 置換用とかもあれば是非お願いしたいです。
それではこれからも宜しくお願いいたします。