JS正規表現

【JS】正規表現でよく使うメソッド

JS

match

正規パターンにマッチした文字列を配列で返す。マッチしない場合はnullを返す。
gオプションの場合は、マッチする全てを配列を返す。

// JS
"検索する文字列".match(正規表現パターン)
// 例
"ABCD".match(/[a-c]/gi)   // ["A", "B", "C"]


// 参)PHP
preg_match("正規表現パターン", "検索する文字列", $m)
// 参)Python
re.search(r"正規表現", "検索する文字列", 修飾子)

exec

matchメソッドと基本的には同じ。
返す配列:[0]に最後にマッチした文字、[1]以降に( )にマッチした各文字。マッチしない場合はnullを返す。

正規表現パターン.exec("検索する文字列")

// 例
/(.+)cde(f)/.exec("abcdefg")  // ["abcdef", "ab", "f", index: 0, input: "abcdefg", groups: undefined]

test

文字列がマッチするか?を返す(true/false)。

正規表現パターン.test("検索する文字列")

// 例
/[0-9]{3}/.test(999)  // true

search

正規表現に最初にマッチした位置を返す。マッチしない場合は-1を返す。

"検索する文字列".search(正規表現パターン) 

// 例
"ABCDE".search(/CD/)  // 2

replace

正規表現にマッチした文字列を置換する。
引数repには、特殊変数($1~$9)を使用できる。サブマッチ文字列を保存するための変数で、正規表現で( )で囲った文字列が順番にセットされる。

"検索する文字列".replace(正規表現パターン, 置換え後文字)

// 例
"090-1234-5678".replace(/^\d{3}-\d{4}-\d{4}$/, "***-****-****") // "****-****-****"
"hoge huga".replace(/(\w+)\s(\w+)/, "$2, $1")   // "hoge, huga"

split

文字列を分割する。

"検索する文字列".split(正規表現パターン [,分割回数])

//例
"2024/01/06".split(/[\/\.\-]/))  // ["2024", "01", "06"]
"2024/1-06".split(/[\/\.\-]/))   // ["2024", "1", "06"]
"2024.01.06".split(/[\/\.\-]/))  // ["2024", "01", "06"]