Go で正規表現を使用しようとすると、エラーが発生します:
error parsing regexp: invalid or unsupported Perl syntax: (?!
このエラーは、特に次の場合に発生しますregex:
regexp.MustCompile("^(?!On.*On\s.+?wrote:)(On\s(.+?)wrote:)$")
この問題は、Perl とは異なり、Go 正規表現がルックアラウンドをサポートしていないために発生します。ルックアラウンドは、周囲のテキストを消費せずにチェックするアサーションです。
この制限を回避するには、別のアプローチを使用します:
まず、2 つの別々の通常のコンパイルをコンパイルします。式:
first := regexp.MustCompile(`^On\s(.+?)wrote:$`) second := regexp.MustCompile(`^On.*On\s.+?wrote:`)
次に、次の手順を実行します。
または、オプションのキャプチャ グループを使用してプロセスを簡素化することもできます。 :
regex := regexp.MustCompile(`^On(.*On)?\s.+?wrote:`)
一致するかどうかを確認し、true を返しますif:
それ以外の場合は、false を返します。 .
以上がGo 正規表現でルックアラウンドを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。