ホームページ  >  記事  >  バックエンド開発  >  Go の正規表現一致は失敗するのに、Python では成功するのはなぜですか?

Go の正規表現一致は失敗するのに、Python では成功するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-26 03:18:10193ブラウズ

Why Does My Go Regex Match Fail, But Python's Succeeds?

Go での正規表現一致の失敗

ユーザーは、Go で正規表現パターンの一致に失敗するという問題に遭遇しました。コード スニペットは、正規表現パターン「^. =b0xA-Fb$」に従って、「parameter=0xFF」形式の文字列を検証しようとします。ただし、一致が成功する Python とは異なり、MatchString() 関数は false と nil エラーを返します。

Go コードのデバッグ

この問題を解決するには、ユーザーは、生の文字列リテラルをパターン文字列として使用することを検討する必要があります。 Go では、生の文字列リテラルは標準の引用符 '"' ではなくバッククォート '`' で囲まれます。この規則により、エスケープ文字 '' が文字列内で解釈されなくなります。

修正された Go コード

生の文字列リテラルを使用して修正された Go コードは:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    var a string = "parameter=0xFF"
    var regex string = `^.+=\b0x[A-F][A-F]\b$`
    result, err := regexp.MatchString(regex, a)
    fmt.Println(result, err)
}

期待される出力

生の文字列リテラルを使用した後の期待される出力は次のとおりです:

true <nil>

これは、入力文字列は、意図したとおり、目的の形式と一致します。

以上がGo の正規表現一致は失敗するのに、Python では成功するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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