ホームページ  >  記事  >  バックエンド開発  >  golang の通常の除外

golang の通常の除外

WBOY
WBOYオリジナル
2023-05-22 16:11:08595ブラウズ

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」で終わるすべての単語が除外されます。

2. 否定先読みアサーション

否定先読みアサーションは、特定の文字列の前のコンテンツのみが一致することを意味します。たとえば、文字列内の「hello」で始まるすべての単語を除外するだけでよく、次のコードを使用できます:

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」で始まるすべての単語が除外されます。

3. 概要

Golang で正規表現を使用して除外操作を実行するには、肯定的な後読みアサーションと否定的な先読みアサーションを使用します。簡単な例を通して、正規表現の柔軟性が除外操作に反映されることがわかります。特に複雑な文字列の問題を扱う場合、正規表現は間違いなく非常に効率的な解決策です。同時に、正規表現を記述する際には、既存の文字列ルールや式の組み合わせ方法を十分に考慮することにも注意する必要があります。

以上がgolang の通常の除外の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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