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 サイトの他の関連記事を参照してください。