node.jsで正規表現を使う

node.jsで正規表現を使う

node.jsで正規表現を使う例です。

配列のfilterメソッドで正規表現を使うと便利に抽出する事ができます。

正規表現.testメソッドでマッチする場合true、しない場合falseを返します。

正規表現.execメソッドを使えばマッチした箇所が配列になって返ってきます。

gオプションは同一行の同じ文字を全て対象とします。

iオプションは大文字小文字を無視(ignoreのi)します。

exec()メソッド

exec()メソッドを使った例です。引数に対象の文字列を指定します。

const str = "/var/db/hoge/test1/Android.json";
const regexp = /\/var\/db\/hoge\/(.*?)\/(iPhone|Android)\.json/g;
let match;
if ((match = regexp.exec(str))!== null) {
console.log(match[0]) // /var/db/hoge/test1/Android.json
console.log(match[1]) // test1
console.log(match[2]) // Android
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

配列の0要素にはマッチした場合の比較対象の文字列が返ってきます。execメソッドで便利なのはマッチした正規表現の箇所が配列の添え字=1から連番で返ってくる点です。

test()メソッド

test()メソッドを使った例です。引数に対象の文字列を指定します。

const str = "/var/db/hoge/test1/Android.json";
const regexp = /\/var\/db\/hoge\/(.*?)\/(iPhone|Android)\.json/g;
console.log(regexp.test(str)) // true

view raw
gistfile1.txt
hosted with ❤ by GitHub

JSの正規表現で注意しないといけないのですが、testしてexecすると動作が変わってしまいます。

const str = "/var/db/hoge/test1/Android.json";
let regexp = /\/var\/db\/hoge\/(.*?)\/(iPhone|Android)\.json/g;
console.log(regexp.test(str)) // true
console.log(regexp.exec(str)) // nullになってしまう

view raw
gistfile1.txt
hosted with ❤ by GitHub

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA