ToolHub
View All Posts

正規表現クイックリファレンスとよく使うパターン

正規表現,または称 regex,はほとんどすべてのプログラミング言語と文本編集する器中使用の強力パターンマッチするツール。だが構文乍看以下かもしれない晦涩難わかる,しかし掌握正規表現できるさせるあなたもって精密にの方式検索する、検証する、提取と変換する文本,そしてこれらの操作する用たことがある程式コードかもしれない必要とするいくつ十行ようやくできる実装する。このガイドではたあなた理解する必要がありますの基本構文、よく使うパターンと実用的なヒント。

基本正規表現構文クイックリファレンス

文字クラス

パターン意味
.改行以外の任意の文字a.c マッチする abc、a1c、a c
\d任意の数字(0-9)\d\d マッチする 42
\D任意の非数字\D マッチする a、!、スペース
\w単词字符(a-z、A-Z、0-9、_)\w+ マッチする hello_123
\W非単語文字\W マッチする @、#、スペース
\s空白文字(スペース、制表符、改行符)a\sb マッチする a b
\S非空白文字\S+ マッチする hello
[abc]セット内の任意の文字[aeiou] マッチする元音字母
[^abc]セットにない任意の文字[^0-9] マッチする非数値
[a-z]文字範囲[A-Za-z] マッチする任意字母

数量詞

パターン意味
*0回以上ab*c マッチする ac、abc、abbc
+1回以上ab+c マッチする abc、abbc
?0回または1回colou?r マッチする color、colour
{n}ちょうどn回\d{4} マッチする 4 位数値
{n,}n回以上\d{2,} マッチする 2 位およびもって上数値
{n,m}n回からm回\d{3,5} マッチする 3-5 位数値

アンカーと境界

パターン意味
^文字列または行の先頭^Hello マッチする開头の Hello
$文字列または行の末尾world$ マッチする结尾の world
\b単語境界\bcat\b マッチする単独の cat
\B非単語境界\Bcat マッチする scattered

グループ化と交替

パターン意味
(abc)キャプチャグループ(ab)+ マッチする abab
(?:abc)非キャプチャグループ(?:ab)+ マッチする abab
a|b交替(OR)cat|dog マッチする cat または dog
\1グループ1への後方参照(\w)\1 マッチする aa、bb
abc)名前付きキャプチャグループもって name 引用する

よく使う正規表現パターン

もって下は Web 開発するとデータ検証中最も常用の正規表現パターン:

メールアドレス検証

一つの实用の电子邮件正規表現,できる捕获大多数の無効に址そしてできないたことがある于严格:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ 。此パターン検証する基本の电子邮件结构,同時に許可する本に部分的に中の常见字符,かつ要件を持つ少なくとも两个字符の TLD の有効域名。

URL検証

マッチする HTTP と HTTPS URL:^https?:\/\/(www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(\/[^\s]*)?$ 。此パターンマッチする带あり可选 www 前缀、域名と可选路径の URL。

電話番号(米国)

美国电话号码の各種類フォーマット:^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$ 。此パターン処理する (555) 123-4567、555-123-4567 と 5551234567 などフォーマット。

IPアドレス(IPv4)

検証する IPv4アドレス:^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$ 。此パターン確保する各八位组で 0 まで 255 の間。

日付(YYYY-MM-DD)

ISO 日付フォーマット:^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ 。此パターン検証するフォーマット结构しかし不確認する毎月の有効日付。

16進数カラーコード

マッチする CSS 16進数カラー:^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ 。此パターンマッチする 3 位简写(#fff)と 6 位(#ffffff)フォーマット。

高度なテクニック

先読みと後読み

先読みと後読み断言させるあなた仅でパターン後面(または前面)あり(またはない)另一つのパターン时ようやくマッチする,そして不する周围の文本を含むでマッチする結果中。

貪欲マッチと遅延マッチ

<.*>bold<.*?>"。

プロのヒント:で提取 HTML タグまたは引号など分隔符の間の内容时,常に使用惰性数量詞もって避けるマッチするたことがある多文本。贪婪マッチするは正規表現 bug 最も一般的のソース。

正規表現パフォーマンスのヒント

正規表現のテストとデバッグ

でデプロイする正規表現パターン前に,务必使用真实入力する入行テストする。使用できるリアルタイムハイライトするマッチするかつ説明するパターン各部分的にのインタラクティブ正規表現テスター。これに役立つあなた捕获エッジケースかつ理解するパターンのために何マッチするまたはマッチしない特定入力する。無料の正規表現テスター,インタラクティブに構築するとテストするあなたのパターン。

無料のツールを使用構築する、テストするとデバッグあなたの正規表現パターン。

試してみる正規表現テスター正規表現クイックリファレンス

よくある質問

贪婪と懒惰正すなわちマッチする違いは何か?

貪欲数量詞マッチする尽かもしれない多の文本,そして遅延数量詞マッチする尽かもしれない少の文本。で数量詞後追加する问号させる其に変わる懒惰の。例えば,.* マッチする最も長のかもしれない文字列,そして .*? マッチする最も短の。

正規表現ですべてのプログラミング言語中すべて一样か?

不,正規表現の実装する因言語そして异。大多数の支持する基本の POSIX 構文,しかし高级機能如後顾、命名する组と Unicode 支持するあり所異なる。JavaScript 历史上正正規表現の支持するあり限,しかし近年来已追加するた多くの機能。

正規表現できる解析する HTML または XML か?

不,正規表現なし法信頼できるに解析する HTML または XML,なぜならそれ们は嵌套のコンテキストなし閉言語。正規表現ない嵌套奥行きまたは平衡タグの概念。请使用適切にの HTML または XML 解析する器。正規表現できるから HTML 中提取簡単パターン,しかしで複雑结构上できる失敗。

正規表現中の先読みと後読みとは何か?

<=pattern) は肯定後読み,もしパターンで前面すなわちマッチする。いいえ定バージョン使用 ! 代の代わりに =。

どのようにさせる正規表現不区分大小写?

で闭合分隔符後追加する i 标志させる全体のパターン不区分大小写。JavaScript で,使用 /pattern/i。Python で,使用 re.IGNORECASE または re.I として标志。あなたもできる使用 (?i) 内联方式させる特定部分的に不区分大小写。

ToolHub's collection of 300+ free online tools including regex tester, cheat sheets, and more — no sign-up required.