問題タブ [capturing-group]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
162 参照

regex - このメールアドレス検証用の正規表現はどのように機能しますか?

電子メール アドレスの検証に使用される正規表現を検索しているときに、このページに出くわしました: http://www.regular-expressions.info/email.html。私はそれを理解できませんでした。

\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+.)+[AZ]{2,4}\b は john@server に一致します。 department.company.com であり、john@aol...com ではありません。

(?:[A-Z0-9-]+\.)どのように機能し、どのように一致しないか、他のものとどのように一致するかを詳しく説明できますjohn@aol...comか?

0 投票する
2 に答える
1864 参照

python - ポジティブルックビハインドvs非キャプチャグループ:異なる動作

私は自分のコードでPython正規表現(reモジュール)を使用していますが、これらの場合の動作が異なることに気づきました。

私が取得する必要があるのはただ['xyz', 'abc']です。例の動作が異なるのはなぜですか?また、どのようにして目的の結果を得るのですか?

0 投票する
2 に答える
2556 参照

c# - Visual Studioの正規表現は、繰り返されるキャプチャグループを置き換えます

私はかなり大きなプロジェクト (c#) に取り組んでおり、場所によっては次のようなスニペットがあります。

コンマで区切られた文字列の長さは任意です (平均的な範囲は 1 から 5 ですが、それ以上あるかどうかはわかりません)。これまでのところ、使用したいすべてのオカレンスを見つけることができます:

出現ごとに、次のようなものに置き換えたいと思います。

各オカレンスを手動で置き換えることは現実的ではありません。仕事をする置換正規表現はありますか?

ありがとう

0 投票する
2 に答える
355 参照

php - PHP正規表現は、キャプチャグループ変数と数値を組み合わせます

たとえば、次のように置き換えたいと思います 。withこれは私がmargin:0px;思いついmargin:0;
た正規表現です。$data = preg_replace('/([^\d])0px/', '$1 0', $data);

$1:この例で はを表します。

$1phpが数値を別のキャプチャグループ変数として解釈せず、上記のように空白を使用せずに、数値と組み合わせるにはどうすればよいですか?

0 投票する
6 に答える
14533 参照

javascript - JavaScript 正規表現で各キャプチャのインデックスを取得する

のような正規表現を照合し/(a).(b)(c.)d/"aabccde"次の情報を取得したい:

これどうやってするの?String.match は、すべてのキャプチャのインデックスではなく、一致のリストと完全な一致の開始のインデックスを返します。

編集: 単純な indexOf では機能しないテスト ケース

注: 質問はJavascript Regex: How to find index of each subexpression? に似ています。、しかし、正規表現を変更してすべての部分式をキャプチャ グループにすることはできません。

0 投票する
2 に答える
9703 参照

javascript - 一致するキャプチャ グループの最後のインスタンスのみをキャプチャする正規表現

同じ奇妙な結果を生成する 2 つの異なる言語 (javaScript と Flash) で次の正規表現があります。私が知りたいのは、それを修正する方法ではなく、なぜ動作が発生しているのかということです。

正規表現:

ここでの目標は、括弧で囲まれた文字列を照合し、エスケープされた括弧で止まらないようにすることです。

テキスト入力があれば正しく一致しますが、[abcdefg]キャプチャ グループの一部として返されるのは だけです。式を に変更すると 、必要な結果が得られます。gabcdefg\[((?:\\{2}|\\\]|[^\]])*)\]

では、なぜこれが起こっているのですか?これは他の言語でも一貫していますか?

注:式を単純化\[([^\]])*\]すると、同じ問題が発生します。

0 投票する
2 に答える
69 参照

java - 正規表現キャプチャ グループに関する明確化

この Java API (ctrl + f) + "グループ名" から直接:

グループに関連付けられたキャプチャされた入力は、常にグループが最後に一致したサブシーケンスです。定量化のためにグループが 2 度目に評価される場合、以前に取得された値があれば、2 度目の評価が失敗しても保持されます。たとえば、文字列「aba」を式 (a(b)?)+ と照合すると、グループ 2 は「b」に設定されたままになります。キャプチャされたすべての入力は、各一致の開始時に破棄されます。

キャプチャ グループがどのように機能し、それらが後方参照でどのように機能するかを知っています。しかし、私は上で引用した API ビットの要点を理解していません。誰かがそれを言い換えることができますか?

前もって感謝します。

0 投票する
1 に答える
158 参照

python - 正規表現で数字をエスケープする方法

reそのため、モジュールごとに文字を置き換えていました。
文字列「abc_def」があり、1後に追加する必要があり_ます。
だから私はこれをしていました。

しかし、これは \1 と 1 を別々にではなく、\11 を 11 番目にキャプチャされたグループとして取ります。

ところで、正常r\1,1\3に動作し、 を返しますabc_,1def

助けが必要 !

0 投票する
3 に答える
1320 参照

python - 正規表現 - 特定の長さの一意の文字のグループを照合する方法

すべての文字が一意である場合にのみ、特定の長さのアドホックな文字グループに一致する正規表現を探しています。

指定された文字列の例:

12313221323131232111212212111122233211221331

123, 132, 213, 231, 312, 321は一致し 112, 122, 121, 111, 313, 322, 221, 323, 131、 などは一致しません。

やってみ(?:([0-9])(?!.{3}\1)){3}たけど全然違う