ホームページ  >  記事  >  バックエンド開発  >  Go 言語の正規表現の導入と応用

Go 言語の正規表現の導入と応用

WBOY
WBOYオリジナル
2023-06-03 09:01:50929ブラウズ

Go 言語では、正規表現は文字列の処理、テキストの一致、指定された文字の検索などに役立つ強力なツールです。この記事では、Go 言語の正規表現の基本構文と実際のアプリケーションでの使用方法を紹介します。

1. 正規表現の概要

正規表現は、文字列パターンを記述するために特別に使用される言語であり、特定の記号と文字の組み合わせを通じて特定の正規文字列を定義します。 Go 言語では、正規表現を使用して、特定のパターンに一致する文字列をすばやく照合または検索できます。 Go 言語での正規表現の実装は、主に正規表現ライブラリ regexp パッケージに依存します。これを使用する場合は、regexp パッケージをインポートし、関連する関数を通じて正規表現を記述して実行する必要があります。

2. 正規表現の基本構文

  1. 文字列マッチング

Go 言語では、文字列マッチングに正規表現を使用する場合、主に以下の記号が使用されます。使用:

記号の意味
. 改行文字を除く任意の文字と一致します
[] 角括弧内の任意の文字と一致します
| 左右の水平線の両側の任意の文字と一致します 文字列
^ 特定の文字列で始まる文字列と一致します
$ 特定の文字列で終わる文字列と一致します

  • 前の式と 0 回以上一致します
  • 一致前の式 1 回以上
    ? 前の式 0 回または 1 回一致

例:

regexp.MustCompile( ab*e) // 「a」、「ab」、「abb」、「abbb」などに一致します。
regexp.MustCompile(ab e) // 「abe」、「abbbe」、「abbbbe」などに一致します。 .、ただし、「ae」、「abe」などには一致しません。
regexp.MustCompile(ab?e) // 「ae」、「abe」などには一致しますが、「abbe」には一致しません"、"abbbbe" など。

  1. 文字列置換

文字列の一致に加えて、正規表現を文字列の置換にも使用できます。 Go 言語では、ReplaceAllString 関数を使用して置換操作を実行できます。その関数プロトタイプは次のとおりです:

func ReplaceAllString(src string, pattern string, repl string) string

ここで、src は、 source String、pattern は置換される正規表現を表し、repl は置換される文字列を表します。例は次のとおりです。

str := "abcde1234"
pattern := [0-9]
repl := "x"

r , _ := regexp.Compile(pattern)
result := r.ReplaceAllString(str, repl) //置換結果は「abcde」です

3. 正規表現の実際の使用法

実際のアプリケーションでは、通常、正規表現は次のシナリオで使用されます。

  1. ユーザー入力の確認

ユーザー登録、ログイン、およびその他のシナリオでは、次のことを目的としています。データの有効性とセキュリティを確保するために、通常はユーザー入力を検証する必要があります。この時点で、正規表現を使用して、ユーザーが入力したデータを検証できます。たとえば、正規表現を使用して、ユーザーが入力した電子メール形式が正しいかどうかを確認できます。

func IsEmail(email string) bool {

reg := `[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$`
r := regexp.MustCompile(reg)
return r.MatchString(email)

}

  1. テキスト情報の抽出

大量のテキストでは、URL リンク、携帯電話番号などの特定の情報を抽出する必要がある場合があります。この時点で、正規表現を使用してこの情報を見つけて抽出できます。たとえば、正規表現を使用して、文字列内のすべての URL リンクを抽出できます。

func GetUrls(text string) []string {

reg := `https?://[^s]+`
r := regexp.MustCompile(reg)
return r.FindAllString(text, -1)

}

    機密情報のフィルター
  1. #一部のアプリケーション シナリオでは、銀行カード番号やパスワードなどの一部の機密情報をフィルターで除外する必要があります。この時点で、正規表現を使用してこの機密情報を除外し、処理することができます。たとえば、正規表現を使用して、文字列内のすべての携帯電話番号を非表示にすることができます。

func HidePhone(text string) string {

reg := `1d{10}`
r := regexp.MustCompile(reg)
return r.ReplaceAllString(text, "****")

}

4. 概要

正規表現は、文字列の処理、テキストの一致、指定された文字の検索などに役立つ強力なツールです。 Go 言語では、regexp パッケージを使用することで、正規表現をより簡単に作成および実行できます。実際のアプリケーションでは、正規表現はユーザー入力、テキスト抽出、情報フィルタリング、その他のシナリオで広く使用されており、タスクをより効率的に完了するのに役立ちます。

以上がGo 言語の正規表現の導入と応用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。