ホームページ > バックエンド開発 > Golang > Golang 正規表現の入門から熟練度まで

Golang 正規表現の入門から熟練度まで

王林
リリース: 2024-04-08 13:36:01
オリジナル
420 人が閲覧しました

Go 正規表現は、regexp.MustCompile を通じて正規表現文字列をコンパイルし、一致、検索、および置換操作に regexp.Regexp オブジェクトを使用します。一般的な使用例には、ユーザー入力の検証、テキストの解析、テキスト変換の実行などが含まれます。正規表現の構文には、文字クラス、メタキャラクター、エスケープ文字が含まれます。最適化のヒントには、正規表現を 1 回だけコンパイルすること、プリコンパイルされた regexp.Regexp オブジェクトを使用すること、および複雑な正規表現を避けることが含まれます。

Golang 正则表达式从入门到精通

正規表現を初心者からマスターへ

正規表現は、次のようなさまざまなプログラミング タスクで非常に役立つ強力なパターン マッチング言語です。

    #ユーザー入力の検証
  • #複雑なテキストの解析
  • #テキストの検索と置換
  • ##テキスト変換の実行
  • ##Goこの言語には、非常に使いやすい組み込みの正規表現サポートが用意されています。
  • 基本構文
  • 正規表現パターンは次の要素で構成されます:

文字クラス:

特定の文字範囲内の文字に一致します。

[a-z]

など、小文字と一致します。
  • メタキャラクター: 特別な意味を持つ記号。たとえば、. は任意の文字に一致し、
  • *
  • は前の文字に 0 回以上一致します。 エスケープ文字: は特殊文字を表すために使用される記号です。たとえば、\n は改行文字を表します。
  • 正規表現の作成 正規表現は、regexp.MustCompile
  • 関数を使用して Go でコンパイルできます。例:
import "regexp"

pattern := regexp.MustCompile("^[a-zA-Z0-9]+$")
ログイン後にコピー

regexp.MustCompile

この関数は、指定された正規表現文字列を regexp.Regexp オブジェクトにコンパイルします。コンパイルに失敗するとパニックが発生します。

正規表現の使用次のメソッドを使用して、regexp.Regexp オブジェクト:

MatchString: ## を使用できます。 # 文字列が正規表現と一致するかどうかを確認します。

FindString:
    正規表現に一致する最初の部分文字列を検索します。
  • FindAllString:
  • 正規表現に一致するすべての部分文字列を検索します。
  • 例:
  • matched, err := pattern.MatchString("username123")
    if err != nil {
        // 处理错误
    }
    fmt.Println(matched) // true
    ログイン後にコピー
  • 実際のケース: 電子メール アドレスの検証 正規表現を使用した電子メール アドレスの検証は、一般的な使用例です。次の正規表現は、有効な電子メール アドレスと一致します:
  • pattern := regexp.MustCompile(`^[\w\.=-]+@[\w\.-]+\.\w+$`)
    ログイン後にコピー
電子メール アドレスは、この正規表現を使用して検証できます:

func validateEmail(email string) bool {
    matched, _ := pattern.MatchString(email)
    return matched
}
ログイン後にコピー
パフォーマンスの最適化

正規表現はコスト パフォーマンスに優れています。特に大量のテキストを処理する場合。パフォーマンス最適化のヒントをいくつか示します。

正規表現を使用するたびにコンパイルするのではなく、1 回だけコンパイルします。

プリコンパイルされた正規表現オブジェクト (

regexp.Regexp

) を使用します。

    複雑な正規表現の使用は避けてください。パフォーマンスの低下を引き起こす可能性があります。
  • これらのヒントに従うと、正規表現駆動のコードのパフォーマンスを向上させることができます。

以上がGolang 正規表現の入門から熟練度までの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート