LoginSignup
20
19

More than 3 years have passed since last update.

正規表現で括弧内(キャプチャ部分)を抽出する

Last updated at Posted at 2018-02-07

正規表現を使用して文字列内の特定の文字を抽出

結果を真偽値 ( 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);

おすすめ正規表現チェッカー

参考サイト・参考記事

■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

20
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
19