Go の正規表現で特殊文字をエスケープするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-19 02:13:02
オリジナル
358 人が閲覧しました

How to Escape Special Characters in Go Regular Expressions?

Go 正規表現での文字列のエスケープ

Go で正規表現を作成する場合、多くの場合、文字列内に存在する特殊文字をエスケープする必要があります。一致しました。これにより、正規表現演算子としてではなく、リテラル文字として扱われるようになります。

たとえば、「{{string}}:」で始まり、ピリオド (.) などの文字を含む文字列と一致する必要があると考えてみましょう。とダッシュ (-)。正規表現における特別な意味との競合を避けるために、文字列をエスケープする必要があります。

Go には、この目的に効果的なソリューションを提供する便利な関数 regexp.QuoteMeta が用意されています。入力文字列内に存在するすべての特殊文字をエスケープし、リテラル文字一致としてレンダリングします。

その使用法を説明するために、質問で提供されている例を変更してみましょう。

package main

import "fmt"
import "regexp"

func main() {
    // Define the input string
    input := "{{string.with.special.characters}}"

    // Escape the special characters
    escaped := regexp.QuoteMeta(input)

    // Create the regular expression
    regex := regexp.MustCompile("^(@|\s)*" + escaped + ":?")

    // Test the regular expression
    match := regex.FindString("(@ ){{string.with.special.characters}}:")

    // Print the match
    fmt.Println(match)
}
ログイン後にコピー

この例では、regexp.QuoteMeta 関数は入力文字列内の特殊文字をエスケープし、正規表現が目的の文字列に正しく一致するようにします。

以上がGo の正規表現で特殊文字をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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