Go の正規表現で特定の文字列以外のものと一致するにはどうすればよいですか?
Go の正規表現での定数文字列以外の一致
Go では、正規表現の一致は regexp パッケージを使用して実行されます。このパッケージは強力な機能を提供しますが、先読みがないなどの制限もあります。これにより、定数文字列を除外する場合のように、特定のパターンを除くすべてのパターンと一致させようとする場合に問題が生じます。
パターン /.*/.*/(.*) を使用する最初のアプローチでは、1 つのパターンのみと一致します。目的の文字列の一部が含まれているため、意図した目的には適していません。代わりに、より包括的なパターンが必要です。
否定文字クラスについて
Go 正規表現は、否定文字クラスを利用して、特定の文字または文字のグループを除外します。たとえば、[^/] はスラッシュ (/) を除く任意の文字に一致します。したがって、最初の .* を [^/]* に置き換えると、/.
以外の 0 個以上の文字と一致します。ただし、文字列の 3 つの部分すべてをキャプチャして、最初の部分 ( 2 つのスラッシュ) には特定の文字列は含まれません。これは、パターンを次のように変更することで実現できます。
r := regexp.MustCompile(`^[^/]+/[^/]+/(.*)`)
サブマッチ評価での否定の使用
3 つの部分すべてをキャプチャした後、値を配列として抽出できます。文字列の。最初の要素 (val[1]) は、3 番目のスラッシュの後にキャプチャされた文字列を表します。特定の文字列を除外するには、次の条件が評価されます。
if len(val) > 1 && val[1] != "somestring" { fmt.Println(val[1]) }
条件が満たされる場合 (配列内の複数の要素、および val[1] が "somestring" に等しくない場合)、目的の部分文字列と印刷されています。それ以外の場合は、「一致しません」が表示されます。
一致しない正規表現 Web サービスを使用した代替解決策
Go 正規表現には先読みがないため、http://www を利用できます。 .formauri.es/personal/pgimeno/misc/non-match-regex POSIX 互換の否定パターンを生成する Web サービス。このサービスを使用すると、特定の文字列の否定パターンを取得できます。
結論
Go の正規表現機能は特定の面で制限されていますが、効果的な回避策はあります。必要なマッチング機能を実現します。否定された文字クラスと慎重な部分一致評価を活用するか、非一致正規表現 Web サービスを使用する前述の代替ソリューションを採用することにより、Go 正規表現を使用して定数文字列以外のものを一致させるタスクを実行できます。
以上がGo の正規表現で特定の文字列以外のものと一致するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Golangは並行性がCよりも優れていますが、Cは生の速度ではGolangよりも優れています。 1)Golangは、GoroutineとChannelを通じて効率的な並行性を達成します。これは、多数の同時タスクの処理に適しています。 2)Cコンパイラの最適化と標準ライブラリを介して、極端な最適化を必要とするアプリケーションに適したハードウェアに近い高性能を提供します。

goisidealforforbeginnersandsutable forcloudnetworkservicesduetoitssimplicity、andconcurrencyfeatures.1)installgofromtheofficialwebsiteandverify with'goversion'.2)

Golangは迅速な発展と同時シナリオに適しており、Cは極端なパフォーマンスと低レベルの制御が必要なシナリオに適しています。 1)Golangは、ごみ収集と並行機関のメカニズムを通じてパフォーマンスを向上させ、高配列Webサービス開発に適しています。 2)Cは、手動のメモリ管理とコンパイラの最適化を通じて究極のパフォーマンスを実現し、埋め込みシステム開発に適しています。

speed、効率、およびシンプル性をspeedsped.1)speed:gocompilesquilesquicklyandrunseffictient、理想的なlargeprojects.2)効率:等系dribribraryreducesexexternaldedenciess、開発効果を高める3)シンプルさ:

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。

GolangとCのパフォーマンスの違いは、主にメモリ管理、コンピレーションの最適化、ランタイム効率に反映されています。 1)Golangのゴミ収集メカニズムは便利ですが、パフォーマンスに影響を与える可能性があります。

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。
