#正規表現を使用して文字列内の特定の文字を抽出
結果を真偽値 ( true / false )で返して欲しければtest()を使用。
検索結果を取得する場合はmatch()かexec()を使用する。gオプションを使用しなければ取得結果は同じ。
キャプチャで特定の文字を抽出する場合はexecメソッドを使用する。
以下はキャプチャでの抽出例
//url('xxx')、url(xxx)のような記述のimgパスのxxxの部分を抽出
var str = "url('fuga.png') url(moge.png)";
const regexp = /url\(["']?([a-zA-Z0-9_\.\/\-]+)["']?\)/g;
let match;
let matches = [];
while ((match = regexp.exec(str))!== null) {
matches.push(match[1]);
}
console.log(matches);
##regex.test(str)
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/;
if(regexp.test(str)) {
console.log("match!");
}else{
console.log("unmatch!");
}
##str.match(regexp)
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);
console.log(matches_array);//["A", "B", "C", "D", "E", "a", "b", "c", "d", "e"]
##regexp.exec(str);
var str = "abbcdefabh";
var regexp = /ab*/g;
var myArray;
while ((myArray = regexp.exec(str)) !== null) {
var msg = myArray[0] + " を見つけました。";
msg += "次のマッチは " + regexp.lastIndex + " からです。";
console.log(msg);
}
var str = "ABCDEFGほげほげHIJKLMNOPQRSTUVWXYZ"
var isHoge = /ほげほげ/.test(str);
console.log(isHoge);
##おすすめ正規表現チェッカー
-
正規表現チェッカー JavaScript版
https://www.softel.co.jp/labs/tools/regex/ -
RebExr (リアルタイムでヒットするかどうかをチェック)
https://regexr.com
##参考サイト・参考記事
■MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/match
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
■JavaScriptの動かないコード(中級編) 正規表現の括弧キャプチャを,グローバルで繰り返しmatchできない (gオプションを付けると部分文字列の抽出が無効)
http://language-and-engineering.hatenablog.jp/entry/2016/06/04/JavaScript%E3%81%AE%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%EF%BC%88%E4%B8%AD%E7%B4%9A%E7%B7%A8%EF%BC%89_%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%AE%E6%8B%AC
■Javascriptによる正規表現まとめ
http://yut.hatenablog.com/entry/20110305/1299318337
■JavaScriptの正規表現で文字列を抜き出す「グループ化」
http://www.koikikukan.com/archives/2013/04/02-003300.php
■ある文字から改行までを選択する
http://info.yadoku.com/archives/2886