Golang の正規表現 (regex) は強力で、Perl 構文に従っており、テキスト パターンの検索、照合、操作が可能です。その構文には、電子メールの検証、URL の抽出、文字列の置換、HTML タグの照合などのユースケースのための文字セット、特殊文字、グループ化、数量指定子、およびアンカーが含まれています。ベスト プラクティスには、明示的なパターンの使用、テストの実施、パフォーマンスへの注意、貪欲なパターンの回避などが含まれます。
Golang 正規表現の力を解き放つ
はじめに
正規表現 Regexは、テキスト内のパターンを検索、照合、および操作するための強力なツールです。 Golang では、regexp パッケージによって包括的な正規表現のサポートが提供され、開発者がアプリケーションで複雑なテキスト データを簡単に解析して処理できるようになります。
構文
Golang の正規表現構文は、従来の Perl 正規表現構文に従います。基本的な構文要素をいくつか示します。
[ ]
) 指定された範囲の文字と一致します。たとえば、[a-z]
は小文字に一致します。 .
は任意の文字に一致し、*
は 0 個以上の先行要素に一致し、
に一致します。 1 つ以上の先行要素。 ( )
) を使用すると、パターン内のサブパターンをグループ化して、将来参照できるようになります。 ?
, {n}
, {m,n}
) 回数を指定しますパターンが繰り返されます。 ^
, $
) はそれぞれ文字列の先頭と末尾を表します。 #実用的なケース
メール アドレスの確認
import "regexp" func isValidEmail(email string) bool { re := regexp.MustCompile(`^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$`) return re.MatchString(email) }
URL の抽出
import "regexp" func extractURL(text string) []string { re := regexp.MustCompile(`(?m)(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,})`) return re.FindAllString(text, -1) }
文字列の置換
import "regexp" func replaceString(str, pattern, replacement string) string { re := regexp.MustCompile(pattern) return re.ReplaceAllString(str, replacement) }
HTML タグの一致
import "regexp" func matchHTMLTags(html string) []string { re := regexp.MustCompile(`<([a-z][a-z0-9]*)(?:\s+[a-z0-9_-]+="[^"]*")?>`) return re.FindAllString(html, -1) }
その他の使用方法 Regular Golang では、式は他にも次のような多くの用途があります。
データ検証正規表現を使用する場合は、いくつかのベスト プラクティスに従うことが重要です:
以上がGolang 正規表現の力を解き放つの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。