JavaScriptの正規表現におけるグループ化の詳しい説明
以前、正規表現については比較的よく理解できたつもりで記事を書きましたが、今日は JavaScript についての共有に焦点を当てます。式のグループ化。 JS 正規表現について十分に理解していない場合は、ここをクリックして詳細を確認してください。
グループ化は、正規表現で広く使用されています。私が理解しているグループ化は、括弧 () のペアです。
グループ化は、次のように分類できます。
グループ化のキャプチャグループ化のキャプチャでは、match exec などの関数の 2 番目と 3 番目の項目の形式で、対応するグループ化の結果を取得します。まず例を見てみましょう
var reg = /test(\d+)/; var str = 'new test001 test002'; console.log(str.match(reg)); //["test001", "001", index: 4, input: "new test001 test002"]
ただし、グループマッチングとは、完全一致結果全体 (つまり、test001) からサブパターン d+ に一致する文字を見つけることです。これは明らかに 001 です。
しかし、今日遭遇した状況は次のようなものです
var reg = /test(\d)+/; var str = 'new test001 test002'; console.log(str.match(reg)); //["test001", "1", index: 4, input: "new test001 test002"]
それらの違いをゆっくり分析してみましょう
(d+) これはグループ化の状況です。デフォルトではマッチングモードが貪欲モードであるため、これはできるだけ多くのマッチングを意味します
すべての d+ マッチング結果は 001 で、次に のペアです括弧はグループの外側に追加されるため、最初のグループのマッチング結果は 001 になります。
2 番目の例の (d)+ を見てみましょう。これも貪欲モードであり、最初に 0 がマッチングされ、次に 0 がマッチングされます。 0 まで、最後の 1 まで一致し、一致の最後まで一致します
最初の例の一致と変わらないようですが、ここでのグループ化 (d) は単一の一致を意味します。番号、
私の以前の理解によれば、最初の一致結果である 0 と一致しますが、この理解は間違っています。マッチング全体が貪欲モードであるため、グループ内でできるだけ多くのマッチング
(d)を行うと、最後に一致した結果1がキャプチャされます
非貪欲モードの場合は、可能な限り少数のマッチングになります
var reg = /test(\d)+?/; var str = 'new test001 test002'; console.log(str.match(reg)); //["test001", "0", index: 4, input: "new test001 test002"]
var reg = /test(?:\d)+/; var str = 'new test001 test002'; console.log(str.match(reg)); //["test001", index: 4, input: "new test001 test002"]

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、Javaのコレクションフレームワークの効果的な使用について説明します。 データ構造、パフォーマンスのニーズ、スレッドの安全性に基づいて、適切なコレクション(リスト、セット、マップ、キュー)の選択を強調しています。 コレクションの使用を効率的に最適化します

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。
