Golang は、今日最も人気のあるプログラミング言語の 1 つであり、そのシンプルさ、学習の容易さ、効率性、速度により広く歓迎され、使用されています。その中でも正規表現は非常に重要な部分であり、Golangプログラミングでも広く使われています。この記事では、Golang で正規表現を使用して操作を除外する方法を紹介します。
1. 基本構文
Golang での正規表現の使用は非常に簡単で、操作には regexp
パッケージが提供する関数を使用するだけです。以下は簡単な例です。
package main import ( "fmt" "regexp" ) func main() { str := "hello world, hello Golang" re := regexp.MustCompile("hello") result := re.FindAllString(str, -1) fmt.Println(result) }
上記のコードを実行すると、出力結果は [hello hello]
になります。つまり、文字列内の一致する文字列がすべて出力されます。
しかし、場合によっては、すべての一致結果が必要ではなく、一部の結果を除外する必要があります。
2. 正規表現でコンテンツを除外する
正規表現でコンテンツを除外するには、次のアサーションを肯定する方法と、前のアサーションを否定する方法の 2 つがあります。
1. 肯定的なフォローアップ アサーション
肯定的なフォローアップ アサーションは、特定の文字列の後のコンテンツのみが一致することを示します。たとえば、文字列内の「Golang」で終わるすべての単語を除外する必要があるだけで、次のコードを使用できます。
package main import ( "fmt" "regexp" ) func main() { str := "hello world, hello Golang" re := regexp.MustCompile(`S+?(?=sGolang)`) result := re.FindAllString(str, -1) fmt.Println(result) }
このコードでは、 S
は単語 ## を表します。 # (?=sGolang ) は、単語の後にスペースがあり、
Golang という単語の終わりが続くことを意味します。この正規表現は正の行アサーションを使用します。これは、一致するときに
Golang より前の単語のみと一致することを意味します。
[hello world, hello] になります。つまり、「Golang」で終わるすべての単語が除外されます。
package main import ( "fmt" "regexp" ) func main() { str := "hello world, hello Golang" re := regexp.MustCompile(`(?<!hellos)S+`) result := re.FindAllString(str, -1) fmt.Println(result) }
(? は、「hello」で始まる単語と一致しないことを意味します。 S は単語を表します。この正規表現は否定先読みアサーションを使用します。つまり、照合時に「hello」で始まらない単語のみと照合します。
[world, Golang] になります。つまり、「hello」で始まるすべての単語が除外されます。
以上がgolang の通常の除外の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。