2016-08-13 15 views
2

私は正規表現構文解析エラーを取得していますgolangでこの正規表現を試してみてくださいエラー?!。正規表現の構文解析 `(`

エラー:無効またはサポートされていないPerlの構文:(?!

regexp.MustCompile("^(?!On.*On\\s.+?wrote:)(On\\s(.+?)wrote:)$"), 

誰かがそのが働いていない理由を教えて、この問題を解決するために私を助けることができますか?

おかげ

+0

go regexpパッケージでは、PCREではなくRE2構文を使用しています。https://github.com/google/re2/wiki/Syntax – JimB

+0

'(?!re)\tテキストは一致しません(サポートされていません)ここ](https://github.com/google/re2/wiki/Syntax) – SomeDude

+0

@svasaそれを動作させるための別の方法はありますか? – user1091558

答えて

1

Go正規表現は、ルックアラウンドをサポートしていません。

回避策として、あなたは

regexp.MustCompile("^On\\s(.+?)wrote:$") 

regexp.MustCompile("^On.*On\\s.+?wrote:") 

を使用すると、最初のものは、文字列に一致し、第二にはないかどうかをチェックします。

また、オプションのキャプチャグループ(.*On)?

regexp.MustCompile("^On(.*On)?\\s.+?wrote:") 

を追加して、一致があるかどうかを確認し、グループ1はOnで終わる場合を返すことができます - はいあれば、そうでない、を返しますtrue

関連する問題