TL
ツールラボ
💰寄付する
💰寄付する

正規表現リファレンス

文字クラス、アンカー、数量詞、グループ、フラグ、よく使うパターンなど、正規表現構文のクイックリファレンスガイドです。

文字クラス

.Any character except newline
\wWord character [a-zA-Z0-9_]
\WNon-word character
\dDigit [0-9]
\DNon-digit
\sWhitespace (space, tab, newline)
\SNon-whitespace
[abc]Character class — a, b, or c
[^abc]Negated class — not a, b, or c
[a-z]Range — any lowercase letter
[a-zA-Z0-9]Alphanumeric characters

アンカー

^Start of string (or line with multiline)
$End of string (or line with multiline)
\bWord boundary
\BNon-word boundary
\AStart of string (not multiline)
\ZEnd of string (not multiline)

数量詞

*Zero or more (greedy)
+One or more (greedy)
?Zero or one (greedy)
{n}Exactly n times
{n,}n or more times
{n,m}Between n and m times
*?Zero or more (lazy/non-greedy)
+?One or more (lazy/non-greedy)
??Zero or one (lazy/non-greedy)

グループと選択

(abc)Capture group
(?:abc)Non-capturing group
(?P<name>abc)Named capture group
a|bAlternation — a or b
(?=abc)Positive lookahead
(?!abc)Negative lookahead
(?<=abc)Positive lookbehind
(?<!abc)Negative lookbehind

エスケープと特殊文字

\nNewline
\tTab
\rCarriage return
\0Null character
\uXXXXUnicode character (hex)
\.Literal dot (escaped)
\\Literal backslash

フラグ

gGlobal — find all matches
iCase-insensitive
mMultiline — ^ and $ match line start/end
sDotall — . matches newline
uUnicode — treat pattern as Unicode
ySticky — match from lastIndex

よく使うパターン

^[\w.-]+@[\w.-]+\.\w{2,}$Email address
https?://[\w./%-]+URL (basic)
^\d{1,3}(\.\d{1,3}){3}$IPv4 address
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$Hex color
^\d{4}-\d{2}-\d{2}$ISO date (YYYY-MM-DD)
^[+]?[\d\s()-]{7,15}$Phone number (basic)
^(?=.*[A-Z])(?=.*\d).{8,}$Password: 8+ chars, 1 uppercase, 1 digit

このツールについて

正規表現(regex)は文字列のパターンを記述する強力な言語です。このリファレンスでは最もよく使われる構文とパターンをまとめています。

セクション別に整理されており、検索ボックスでキーワードによるフィルタリングが可能です。

使い方

  1. セクションを参照して必要な構文を探します。
  2. 検索ボックスにキーワードを入力してフィルタリングします。
  3. パターンをクリックしてクリップボードにコピーします。
  4. 正規表現テスターでパターンをテストしてみましょう。

活用事例

フォームバリデーション、文字列解析、ログ分析、検索・置換など、様々なプログラミング作業に役立ちます。

よくある質問

  • 正規表現はすべての言語で動作しますか?ほとんどの言語でサポートされていますが、構文が若干異なる場合があります。JavaScript、Python、JavaなどはほとんどがPCRE互換の構文に従っています。
  • 大文字小文字を区別せずに検索するには?パターンの後にiフラグを追加します。例: /pattern/i
  • 貪欲な数量詞と怠惰な数量詞の違いは何ですか?貪欲な数量詞(*, +, ?)はできるだけ多くマッチし、怠惰な数量詞(*?, +?, ??)はできるだけ少なくマッチします。