【正規表現】忙しい人のためのregex早見表

TipsTypeScriptJavaScript
2025年11月07日に更新

バリデーションルールや文字列置換でよく使うものを正規表現・組み合わせた実用例・書き方に分けてまとめました。
忘れがちな自分のため各記号の意味など初歩的な内容も含んでいるので、正規表現だけが知りたい!という方は下の目次から実用例までぶっ飛んでください

JS/TSでのregexの使用を想定しているので、先頭と末尾にスラッシュを使用します。

例: /^正規表現$/

オプション

gマッチするすべて
i大文字、小文字の区別をしない

基本的なやつ

文字単位で意味を持つものをまとめています。

正規表現意味
^文頭
$文末
*直前の文字・パターンの0回以上の繰り返し
+直前の文字・パターンの1回以上の繰り返し
?直前の文字・パターンの0回or1回の繰り返し
.任意の1文字
\n改行
\tタブ
\s空白(改行・タブ・半角スペースも含む)
\S空白(改行・タブ・半角スペースも含む)以外
\w半角英数字とアンダースコア(_
\W半角英数字とアンダースコア(_)以外
\l半角英小文字の中から1文字
こちらでは動作しなかったため要確認
\L半角英小文字以外の中から1文字
こちらでは動作しなかったため要確認
\u半角英大文字の中から1文字
こちらでは動作しなかったため要確認
\U半角英大文字以外の中から1文字
こちらでは動作しなかったため要確認
\d半角数字の中から1文字
\D半角数字以外の中から1文字
{min,max}min回からmax回の繰り返しにマッチ
{min,}min回以上の繰り返しにマッチ
{n}n回の繰り返しにマッチ
[abc]a, b, cのいずれか1文字
[^abc]a, b, cのどれも含まない1文字
a|baもしくはb

基本的なやつを組み合わせた基本的なやつ

上記の文字の組み合わせで成り立つパターン群です。

正規表現意味
.+任意の文字列
[ -~]半角文字の1文字
[0-9]半角数字の中から1文字
[a-z]半角英小文字の中から1文字
[A-Z]半角英大文字の中から1文字
[a-zA-Z0-9]半角英数字の中から1文字
^[^ -~。-゚]全角文字の1文字
[a-zA-Z]半角英字の1文字
[ぁ-ん]ひらがな1文字
(?=.*あああ)あああを含む
(?!=.*あああ)あああを含まない

実用例

項目正規表現
メールアドレス/^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}$/
郵便番号^[0-9]{3}-[0-9]{4}$
URL^https?://[\w/:%#\$&\?\(\)~\.=\+\-]+$

正規表現を使ったいろいろ

バリデーション

const user = {  name: '太@郎',  email: '[email protected]',}  const validationRule = {  // 半角記号を含めない  name: /^\[^!@#$%^&*(),.?":{}|<>\]\*$/,  // gmail縛り  email: /^\[a-zA-Z0-9_.+-\]+@gmail.com$/}    validationRule.name.test(user.name) // false  validationRule.email.test(user.email) // false

指定した単語がいくつあるか検索

const word = 'なま'const regexp = new RegExp(word, 'g')const text = 'なまむぎなまごめなまたまご'const wordCount = (text.match(regexp) || []).length  wordCount // 3

文字列の中に使われた自作の変数を置換

<変数>として使用されていることとします。

const user = {  name: '太郎',  age: 20,}  const regexp = /<[^<>].+>/g  const text = `  こんにちは。わたしの名前は<name>です。  年齢は<age>歳です。  よろしくお願いします。`  text.replace(regexp, tag => {  const key = tag.slice(1, tag.length - 1) as keyof typeof user  return typeof user[key] !== 'undefined' ? \`${user[key]}` : tag})  /** *   こんにちは。わたしの名前は太郎です。 *   年齢は20歳です。 *   よろしくお願いします。 */