初心者向けアドバイス: 正規表現の後方参照に関する質問
先輩方、こんにちは!初心者なので質問したいことがあります。
最近「PHP の詳細」を読んでいたのですが、その本には、正規表現内の各部分表現 (() で囲まれたもの) は、非キャプチャ メタ文字を追加せずに、左から右に一致すると書かれていました。各部分式の結果はバッファに格納され、1 から 99 までの数字で参照されます。正しい記述かどうかはわかりません。ここで 2 つの質問があります: 1. この本には、数値を使用して部分式を参照するときは、数値の前にバックスラッシュ エスケープを追加する必要があると書かれています。これは、どのバージョンにも関係ありません。関係?
2. 式内で、特定の部分式にメタキャラクタ ?: が追加されているため、一致結果が保存されず、バッファの数が 1 つも増えず、保存する方法がありません。番号で参照すると、それを繰り返すことができます。 この部分式を呼び出しますか?
ありがとう!
ディスカッション(解決策)への返信
まず例を挙げてください
は必要ありません
モデレータさん、返信ありがとうございます。 PHP では、一致に preg_match を使用します。パターンは '^([a-zA-Z]*)d+1$' です。これは、文字列 'demo123demo' を一致させることを意味します。 。パターン内の数値の前にバックスラッシュを追加すると、false が返されます。 上記は私が自分で試してみたものです。そこで百度でいくつかの「正規表現リファレンスマニュアル」を検索したところ、いくつかの例に追加する必要はありませんでした。
添付リンク (リンクの投稿が投稿ルールに違反するかどうかはわかりません): https://translate.google.com.hk/?hl=zh-CN&tab=wT そこにはポイント 6 の例はありません。 。
さて、私が本当に答えを得たいのは、「バージョンの違い」の問題があるかどうかを判断するために、この質問を拡張したいだけです。モデレータに迷惑をかけて申し訳ありません。
/^([a-zA-Z]*)d+ 1$/
これは
エスケープする数値の前にバックスラッシュを追加するだけ ではないでしょうか?
2 番目の質問の意味はこれでしょうか?
/^(?=[a-zA-Z]+)d+(?=[a-zA-Z]+)$/
最初のものはバックスラッシュでエスケープします。私が読んだ本には、数字自体は1から99までと書かれていました。引用したい場合は、本にあるようにバックスラッシュを追加する必要があります。これは「\1」です。それで、昨夜何かがおかしいと感じて、バックスラッシュを追加すると文字列「1」と一致することを発見しました。この本に書かれているすべてを信用することはできないようです
お二人とも本当にありがとうございました!

ホット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)

ホットトピック











ミストロック キングダムは、プレイヤーが Sons of Fire としてプレイして生き残り、探索できるオープンワールド ゲームです。このゲームは、アクション RPG チャレンジのユニークなエンターテイメントを組み合わせており、プレイヤーに無限の驚きと喜びをもたらします。ゲームでは、プレイヤーはリソース、環境、武器などを探索できます。初心者プレイヤーの中には、ゲームの始め方に興味がある人もいるかもしれません。この紹介と共有では、関連するスタート ガイドをいくつか提供します。フォグ ロック キングダムの初心者向けヒント: 瘴気に包まれた地域の危険度は異なります。探索プロセス中に、マップの新しいエリアが徐々にロック解除され、瘴気に包まれた地域の位置が確認できるようになります。マップは2色で区別されており、青色のエリアは短時間しか進入できず、キャラクターの能力レベルに応じて滞在可能時間も変化する。

「アンカーアライバル」は、高解像度の美少女 2D をテーマにした 3D ターン制カードゲームです。プレイヤーが探索して体験できる豊富でエキサイティングなキャラクターの組み合わせを提供します。高品質のラインナップの強力な組み合わせが数多くあります。新規プレイヤーは初心者にも気になる初心者向けの強力なキャラは何ですか? 初心者が10連ゴールドを獲得するための選択の参考を見てみましょう! アンカーポイント降臨は初心者向けの強力なキャラです。10連の最初のピックはアリスです。主に単体雷系爆発キャラで、出力も爆発力が高く、初心者にも優しいので選ぶのがオススメです。ゴールド10連は「アリス」+「アンテロープ」の組み合わせがおすすめ アリスはゴールドパイア属性を出力するのに最も適したキャラクターであり、初心者カードプールの他の2キャラクターと比べても少しも強いです。アリスはスペシャルをパスできる

Crown of the Ancients は、西洋の魔法の冒険をベースにした高品質で戦略的なカード モバイル ゲームです。ゲーム内では秘密の探索、遺跡の冒険、全国選手権などの特別なゲームプレイがあなたを待っています。したがって、初心者プレイヤーがこのゲームをすぐに始めたい場合は、初心者ガイドが不可欠です。今日、編集者が関連するガイドをお届けしますので、見てみましょう。エンシェントクラウンの初心者向けガイド、ゲームプレイ、エリア開放スタイルの概要: 1. ダイヤモンド蓄積フロー:すべてはダイヤモンドを蓄積することに集中しており、村を出てから熱心に働き始めます。メインの魔法の武器、ダイヤモンドを必要とする 3 つのフライホイール アクティビティなどを除いて、その他は無視されます。主にそのうちの 1 つに重点が置かれます。ヒーロー チャレンジには注意を払わないでください。できるだけ多く戦えます。 、そしてそれを強制しないでください。利点: ダイヤモンドを集めるためにいじるだけで、村を出た後、ダイヤモンドを使った最新のアクティビティにすぐにアクセスでき、新しいハードウェア ヒーロー シリーズを入手でき、ダイヤモンドは壊れます。

PHP 正規表現の検証: 数値形式の検出 PHP プログラムを作成する場合、ユーザーが入力したデータを検証する必要がよくあります。一般的な検証の 1 つは、データが指定された数値形式に準拠しているかどうかを確認することです。 PHP では、正規表現を使用してこの種の検証を行うことができます。この記事では、PHP 正規表現を使用して数値形式を検証する方法を紹介し、具体的なコード例を示します。まず、一般的な数値形式の検証要件を見てみましょう。 整数: 0 ~ 9 の数字のみが含まれ、プラスまたはマイナス記号で始めることができ、小数点は含まれません。浮動小数点

正規表現を使用して Golang で電子メール アドレスを検証するには、次の手順に従います。 regexp.MustCompile を使用して、有効な電子メール アドレス形式と一致する正規表現パターンを作成します。 MatchString 関数を使用して、文字列がパターンと一致するかどうかを確認します。このパターンは、次のようなほとんどの有効な電子メール アドレス形式をカバーします。 ローカル ユーザー名には文字、数字、および特殊文字を含めることができます: !.#$%&'*+/=?^_{|}~-` ドメイン名には少なくとも次の文字が含まれている必要があります。 1 文字の後に文字、数字、またはハイフンを続けます。トップレベル ドメイン (TLD) は 63 文字を超えることはできません。

PHP 正規表現: 完全一致と除外 ファジー包含正規表現は、プログラマがテキストを処理する際に効率的な検索、置換、フィルタリングを実行できる強力なテキスト マッチング ツールです。 PHP では、正規表現は文字列処理やデータ マッチングにも広く使用されています。この記事では、PHP で完全一致を実行し、あいまい包含操作を除外する方法に焦点を当て、具体的なコード例を使用して説明します。完全一致 完全一致とは、バリエーションや余分な単語ではなく、正確な条件を満たす文字列のみと一致することを意味します。

C 言語と C: どちらが新人プログラマーに適しているか 現代テクノロジーの急速な発展の時代において、キャリア開発の一環として、または論理的思考スキルを向上させる方法として、プログラミングを学ぶことはますます人気のある選択肢となっています。数あるプログラミング言語の中でもC言語とC言語はどちらも非常に古典的で代表的な言語ですが、初心者向けのプログラミング言語としてC言語とC言語のどちらを選べばよいか迷う方も多いと思います。では、プログラミング初心者には C 言語の方が適しているのでしょうか、それとも C の方が適しているのでしょうか?具体的なコード例が必要な場合

Go では、正規表現を使用してタイムスタンプを照合できます。ISO8601 タイムスタンプの照合に使用されるような正規表現文字列をコンパイルします。 ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ 。 regexp.MatchString 関数を使用して、文字列が正規表現と一致するかどうかを確認します。
