ホームページ >バックエンド開発 >Golang >正規表現を使用せずに Go 文字列内の重複するパターンを効率的に見つけるにはどうすればよいですか?

正規表現を使用せずに Go 文字列内の重複するパターンを効率的に見つけるにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-03 22:53:10511ブラウズ

How Can I Efficiently Find Overlapping Patterns in Go Strings Without Regular Expressions?

Golang での重複パターンの克服

重複一致の処理における正規表現の制限にもかかわらず、Golang では重複パターンを抽出するための代替手段があります。複雑な式は魅力的かもしれませんが、不必要な複雑さや非効率を招くことがよくあります。

効果的なアプローチの 1 つは、string.Index と for ループの直感的な性質を利用することです。たとえば、パターン「..#..」のインデックスを見つけるには、strings.Index を使用して入力文字列を反復処理し、インデックスをリストに蓄積します。

input := "...#...#....#.....#..#..#..#......."
idx := []int{}
j := 0
for {
    i := strings.Index(input[j:], "..#..")
    if i == -1 {
        break
    }
    fmt.Println(j)
    idx = append(idx, j+i)
    j += i+1
}
fmt.Println("Indexes:", idx)

このアプローチにより、一致プロセスを強化し、一致をより適切に制御できるようになり、不必要な正規表現操作を回避することで効率が向上します。ループの単純な性質により、さまざまなパターンや文字列の組み合わせを簡単に処理できます。

以上が正規表現を使用せずに Go 文字列内の重複するパターンを効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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