
電話番号 Regex Go バリデーター
電話番号 Regex Go バリデーターを使用して、GolangのregexpパッケージでE.164などの電話番号フォーマットをテスト・検証できます。このツールは、サインアップフロー、フォーム検証、または通信アプリを構築する開発者やテスターに最適です。余分なコードを書くことなく、携帯番号、国際フォーマット、または特定の桁パターンを正しくマッチするregexを即時に確認できます。
より多くのテスト入力が必要ですか?電話番号ジェネレーター、ZIPコードジェネレーター、または住所ジェネレーターを試して、現実的なフォームデータをシミュレートしてください。
電話番号 Regex Go バリデーター - ドキュメント
GoにおけるPhone Number Regexとは?
Go(Golang)では、正規表現はregexp標準ライブラリを通じて処理されます。電話番号の検証では以下のような特定の構造をチェックします。
国番号(例:+91、+1)
市外局番
ハイフン、スペース、括弧などのオプションの区切り文字
国や地域によって異なる可変の番号の長さ
電話番号regexが特に役立つ場面:
ユーザーサインアップ時のフォーム検証
APIやデータベースのバックエンドチェック
SMS/通話システム
通信ソフトウェアとモバイルアプリ
コア機能と構成要素(Go Regex)
メタ文字
.: 改行以外の任意の1文字にマッチします。例:/.23/は"a23"、"x23"にマッチ^: 文字列の先頭に固定します。例:/^+91/は"+91xxxxx..."にマッチ$: 文字列の末尾に固定します。例:/123$/は"123"で終わる文字列にマッチ|: OR演算子として機能します。例:/landline|mobile/はどちらにもマッチ
文字クラス
[0-9]: 0〜9の任意の数字にマッチします[^0-9]: 数字以外の任意の文字にマッチします[a-zA-Z]: 任意のアルファベット(大文字・小文字)にマッチします
定義済みクラス
\d: 数字1桁にマッチします([0-9]と同等)\D: 数字以外の文字にマッチします\s: 空白文字にマッチします\S: 空白以外の任意の文字にマッチします
量指定子
*: 0回以上の繰り返しにマッチします+: 1回以上の繰り返しにマッチします?: 0回または1回(オプション)にマッチします{n}: ちょうどn回の繰り返しにマッチします{n,}: n回以上の繰り返しにマッチします{n,m}: n回以上m回以下の繰り返しにマッチします
Goでのマッチ数の制限
GoのregexでN件のみ返す場合は、FindAllStringやFindAllStringSubmatchなどの関数の第2引数に正の整数を渡します。例えばFindAllString("peach punch pinch", 2)は最初の2件のみを返します。長いテキストから一部の電話番号だけを取得したい場合に便利です。
電話番号のRegexパターン例
国際電話番号を検証する一般的なregexパターンです。
^\+?[1-9]\d{1,3}?[-.\s]?\(?\d{1,4}?\)?[-.\s]?\d{1,9}([-.\s]?\d{1,9})?$このパターンは以下にマッチします。
+91、+44、+1などの国番号
ハイフン、ドット、スペースなどのオプション区切り文字
市外局番の括弧
GoのregexpオブジェクトのCommonメソッド
MatchString / Match: パターンが文字列(または
[]byte)の一部または全体にマッチするかを素早く確認します。FindString / Find: 入力からパターンにマッチする最初の部分文字列を返します。
FindStringIndex / FindIndex: テキストではなく、最初のマッチの開始と終了位置を返します。
FindStringSubmatch / FindSubmatch: メインのマッチだけでなく、キャプチャグループも取得します。
FindAllString、FindAllStringSubmatchなど: 入力全体をスキャンしてすべてのマッチを返します。件数を渡すことで制限できます。
ReplaceAllString / ReplaceAll: マッチしたすべての部分文字列を別の値で置き換えます。
ReplaceAllFunc: 各マッチに関数を適用して、マッチしたテキストを動的に変換します。
Go コード例
例 1: 基本的な電話番号検証
package mainimport ( "fmt" "regexp" )
func main() { pattern := regexp.MustCompile(^\+?[0-9]{10,15}$) phone := "+14155552671" fmt.Println("Valid Phone:", pattern.MatchString(phone)) }
Go Regex Testerで類似パターンを試してみてください。
例 2: 区切り文字を含む電話番号
package mainimport ( "fmt" "regexp" )
func main() { pattern := regexp.MustCompile(^$begin:math:text$?\\d{3}$end:math:text$?[-.\s]?\d{3}[-.\s]?\d{4}$) phone := "(415) 555-2671" fmt.Println("Valid Format:", pattern.MatchString(phone)) }
電話番号ジェネレーターで実際の番号を生成してください。
例 3: 市外局番を含むフォームフィールドテスト
package mainimport ( "fmt" "regexp" )
func main() { input := "+91-9876543210" regex := regexp.MustCompile(^\+91[-\s]?[6-9]\d{9}$) fmt.Println("Indian Mobile Number Valid:", regex.MatchString(input)) }
住所ジェネレーターと組み合わせると完全なユーザーテストデータを作成できます。
Goでマッチのインデックスとサブマッチを取得する
FindStringSubmatchIndexメソッドを使用すると、文字列内のマッチと各サブマッチの正確な開始・終了位置を取得できます。
fmt.Println(r.FindStringSubmatchIndex("peach punch"))文字列内の最初のマッチを見つける
pattern := regexp.MustCompile([a-zA-Z]+)
result := pattern.FindString("peach punch")
// result will be "peach"Goで正規表現を使って部分文字列を置換する
ReplaceAllStringによる基本的な置換
package mainimport ( "fmt" "regexp" )
func main() { r := regexp.MustCompile(peach) result := r.ReplaceAllString("a peach", "") fmt.Println(result) // Output: a }
高度な処理:カスタム関数による置換
package mainimport ( "bytes" "fmt" "regexp" )
func main() { r := regexp.MustCompile([a-z]+) text := []byte("a peach") result := r.ReplaceAllFunc(text, bytes.ToUpper) fmt.Println(string(result)) // Output: A PEACH }
プロのヒント
静的パターンには常に
regexp.MustCompile()を使用して実行時エラーを回避しましょう。市外局番や内線番号などを抽出したい場合は
FindStringSubmatch()を使用してください。精度向上のため、
.*のような過度に貪欲な表現は避け、{10,15}のような量指定子を使いましょう。電話番号ジェネレーターやユーザー名ジェネレーターなどのツールから実際のテストデータで検証しましょう。
大文字・小文字を区別しないマッチングには
(?i)プレフィックスを使用してください。
組み合わせをお勧めするツール
電話番号ジェネレーター: 検証用のダミー電話番号を生成
メールジェネレーター: サインアップフォームでメールと組み合わせ
ユーザー名ジェネレーター: ユーザープロフィール作成に使用
住所ジェネレーター: 完全なコンタクトフォームをシミュレート
パスワードジェネレーター: 完全なユーザー登録フローのテストに
UUIDジェネレーター: デバイス/ユーザーIDと組み合わせ
ユースケース
サインアップフォームの検証
ECモバイル認証
通信APIテスト
QAチーム向けフェイクデータ生成
データ移行と正規化
他の言語向けRegex
JavaScript: JavaScript Regex Testerで使用
Java: Java Regex Testerで試す
Python: Python Regex Testerでテスト
Frequently Asked Questions
電話番号regexパターンはどのフォーマットをサポートしますか?
インドの電話番号を検証できますか?
^\+91[6-9]\d{9}$のようなregexを使ってインドの携帯番号をマッチさせることができます。内線番号を含む場合はどうすればいいですか?
(?:x\d{2,5})?のようなセクションをregexに追加して、+1-800-555-1234x456のような内線番号にマッチさせることができます。Goのregexを使って市外局番を抽出できますか?
()を使用し、コード内でFindStringSubmatch()を介してアクセスできます。このregexバリデーターはGo専用ですか?
Related Articles






