正規表現を使ったグループ分けと引用
0. の前に書く。
今日は、グループ化、参照について、規則的に、実際に 最初の記事 実は、最初の記事で
^([1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\. (0|[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$
以下のように省略することができます。
^(Condition 1)(\. (condition 2)){3}$
式の中にいくつかの括弧のペアがあるのがわかると思います。なぜ括弧で式を囲むのか、これらの括弧はどのような働きをするのか、一緒に見ていきましょう。
1. グループ分けとナンバリング
括弧は規則的なパターンでグループ化するために使用することができます。括弧で囲まれた部分は部分式と呼ぶことができ、サブグループとして保存されます。
例として、2021-06-01 13:14:21という日時があり、そこから日時を抽出するために、以下のように括弧でグループ化したいとします。
この図には2つのグループがあり、日付のグループ分けが1つ目、時間のグループ分けが2つ目であることがおわかりいただけると思います。左括弧の位置でグループ化のラベルを示し、1から順に、左括弧の数がグループの数となるようにしています。
上の栗では、もう少し分解してみましょう。以下のように、年、月、日、時、分、秒をそれぞれ抽出したい。
日付のグループには1、時刻のグループには5、年、月、日のグループには2、3、4、時、分、秒のグループには6、7、8とそれぞれ番号が振られていることがわかります。
2. サブグループを保存しない
サブグループはややパフォーマンスが高く、単にグループ化したいだけで、後で使いたくない場合もあるので、左括弧の後に ? : で、サブグループが保存されないことを示します。
例えば、対象文字列中の15桁や18桁の数字をregularでマッチングさせる必要がある場合です。
<テーブル 機能 レジエクスプ 例 サブグループの保存 (レギュラー) \Ъ(ЪдЪ)Ъ? サブグループを保存しない (? :regular) \Ъ(? :Ъ)Ъ?
先ほど話したIPv4の正規表現を最適化するには
^(? :[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])(? : \. (? :0|[1-9][0-9]? |1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$
3. グループ化されたリファレンス
グループ化について説明した後、グループを参照する方法について見てみましょう。 バックスラッシュ+数字 はほとんどの言語で使用できますが、JavaScript などの一部の言語では ドル記号 + ナンバリング を次のように記述します。
<テーブル プログラミング言語 ルックアップ時の引用スタイル で置き換え パイソン \を入力します。 \を使用します。 行く 公式パッケージではサポートされていません 公式パッケージがサポートしていない ジャワ \を選択します。 $number as in $1 ジャバスクリプト $number as $1 $number as in $1 PHP \を指定します。 \を使用します。 ルビー \を選択します。 \を使用します。
4. 検索と置換
検索
ここまでで、グループ化と参照について学びましたので、実践してみましょう。対象となる文字列の中で繰り返し出てくる2つの単語を探すという要求がある。
単語の境界についてはまだ習っていないので、まずは \w{2,} で出現する単語を示し、繰り返される単語は (\w{2,} \1) を実行し、その結果をご覧ください。
交換
上記では、日付をグループ化して置換する話をしました。
対応するPythonのコードは以下の通りです。
import re
test_str = "2021-06-01 13:14:21"
regex = r"((\d{4})-(\d{2})-(\d{2})) ((\d{2}):(\d{2}):(\d{2}))"
subst = r"\2 years \3 months \4 days \6 hours \7 minutes \8 seconds"
result = re.sub(regex, subst, test_str)
print(result)
Output: June 01, 2021 13h 14m 21s
5. テキストエディタでの使用
正規表現はコードだけでなく、テキストエディタでも使えるので、Sublime Text 3は正規の検索と置換を行う例です。
クリック 検索 -> 検索 オプション、またはショートカットキー Ctrl + F をクリックして、検索機能を呼び出します。
クリックすると 検索 -> 置換 オプション、またはショートカットキー Ctrl + H をクリックして、置換機能を呼び出すことができます。
検索
メールボックスを検索する機能を実装してみましょう、ここでメールの定期は、ちょうど使用する簡単なデモです、ときにすべてを検索ボタンをクリックすると、メールボックスが検出されていることがわかります、この時点でCtrl + Cのコピーをクリックすると、個別に検出メールボックスを貼り付けることができます。
交換
上で話した置換の例を実証する。
どのように、非常に便利ではありませんが、ほぼすべての主流のエディタは、私たちの仕事やかなり多くを助けるために、定期的に学ぶ、によってサポートされています。
6. 最後に書く
最後に、上で言われたことをまとめると。
正規表現オンライン検証ツール。 https://regex101.com/
正規表現のグループ化と参照の使用に関するこの記事は、この、より関連する正規表現のグループ化と参照の内容を検索してくださいHouse of Scriptsの過去の記事または以下の関連記事を閲覧し続けるHouse of Scriptsを今後ともよろしくお願いします!。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン