問題タブ [capture-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 に答える
200 参照

php - PHP 正規表現の例

PHPを勉強中の初心者です。正規表現とのさまざまな組み合わせを試しています。thisthisを参照して、 thisの例を試しています。

私の疑問:

  1. と の両方を出力としてpreg_match_all('((a|b)*c)', 'ababc', $arr, PREG_PATTERN_ORDER);与えるのはなぜですか。それはただであるべきではありませんか?ababacaababac

  2. で考えられるすべての出力を読み取ろうとしていると仮定すると$arr、配列の各要素をエコーすることなく、どうすればそれを行うことができますか? 現在、foreachの要素を反復処理するために使用してい$arrます。これは正しいですか / もっと良い方法はありますか?

  3. が要素をpreg_match_all()含む 2D 配列を与えるのはなぜですか。出力がどのように保存されるかを知る方法はありますか?$arr[$i][0]$arr[0][$i]$i

1つの投稿に多くの質問を投稿して申し訳ありません。変更する必要があるかどうか教えてください。

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

regex - 名前による C++11 正規表現キャプチャ グループ

ブーストベースの正規表現を C++11 正規表現に変換しています。というキャプチャ グループがありurlます。

ブーストを使用すると、名前でキャプチャ グループを取得するためにsmatch呼び出すことができます。match.str("url")ではstd::smatch、インデックス付きのサブマッチのみが表示されます。

std::smatch クラスを使用して URL キャプチャにアクセスするにはどうすればよいですか?

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

python - 区切り文字を削除せずに文字列を分割するが、空のキャプチャ グループを抑制する

キャプチャ正規表現全体を括弧で囲むことにより、 delimiters を削除せずに文字列を分割しています。その意図は、1 つ以上の '[!?]' 文字で終わる文を一致させることです。

不要な空のキャプチャ グループを取得するようになったことを除いて、すべてが素晴らしいです。

(これはすべて、より複雑な正規表現とサブ関数内に深くネストされているため、実際にはハックは必要ありません。ソリューションを正規表現にしたいので、より複雑な正規表現に折りたたむことができます)

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

regex - 次のキャプチャ グループ表記は Perl にとって何か意味がありますか?

以下で、条件が と評価されるのはなぜfalseですか?

「見る」ことができない特別な意味はあります\11か?\111Perl\1

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

regex - タブ区切りのテキスト行から中央の 2 つの列を抽出するにはどうすればよいですか?

2 つの正規表現が必要です。1 つは数字の 2 番目のブロックを見つけ、もう 1 つは数字の 3 番目のブロックを見つけます。私のデータは次のようなものです:

を見つけるための 1 つのコードと、 を見つけるための04別のコード1988。最初の 16 個の数字と最後の 3 個の数字を見つける式は既にありますが、2 番目と 3 番目のセクションの 2 つの数字を見つけるのに行き詰まっています。

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

java - 集団攻略で期待できる効果は?

出力は

私は出力を期待していましたが

私の期待される出力の理由は

パターンをいつ言及するかわかりません"(.*)(\\d+)(.*)"; 期待される出力が得られないのはなぜですか?

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

regex - 変数に対するExpectの正規表現パターンマッチングでキャプチャグループにアクセスする

これを機能させることができず、その理由がわかりません。行末の数字の間にスペースがある行があります。この行に一致することを期待して、数字とスペースをキャプチャ グループに入れる必要があり、スクリプトの後半でそのキャプチャ グループにアクセスする必要があります。

サンプル行は次のとおりです。これは行です 2 4 5 6

私のexpect -reステートメント:expect -re {^this\sis\sa\sline((\s\d)+$)}

次に、$expect_out(1,string) を使用してキャプチャ グループにアクセスしようとしています。

http://gskinner.com/RegExr/を確認すると、一致グループ 1 は「2 4 5 6」であると表示されているため、パターンが正しく一致していると確信しており、$ に「2 4 5 6」が表示されると予想されます。 expect_out(1,string) ですね。

ただし、expect スクリプトを実行すると、次のように表示されます。

"2 4 5 6" (または " 2 4 5 6") を変数に入れて、後で期待スクリプトで使用するにはどうすればよいですか?

また、私はあなたの注意を引いていますが、どういうGate=Yes re=No意味ですか? re=No は正規表現が一致しなかったことを意味すると思いますがGate、Expect の世界では何ですか?

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

regex - ドメインのさまざまな部分を照合するための正規表現

ドメインをさまざまなカテゴリ (サブドメイン、ドメイン、TLD) に分割しようとしていますが、問題が発生しています..

任意の数のサブドメインを照合し、ドメインまたは TLD の照合を追い越さない方法がわかりません。私は PCRE 正規表現を使用しています。

現在の正規表現:

データセット:

注:ドメインの前後にスペースがあり、常に小文字になります。

このデータがどのように一致するかの例:

apple.orange.banana.clevername.co.uk

サブドメイン: apple.orange.banana
ドメイン: google
tld: co.uk

サブドメイン (strawberry.apple.orange.banana.clevername.co.uk) に別の果物を追加すると、一致は失敗します。サブドメインの正規表現の {0,3} をより大きな数または無制限の数の一致に変更すると、貪欲になりすぎて、ドメイン/tld の正しい一致が得られなくなります。この例:

変更された正規表現:

新しい正規表現との結果の一致:

ストロベリー.アップル.オレンジ.バナナ.クレバーネーム.co.uk

サブドメイン: ストロベリー.アップル.オレンジ.バナナ.クレバーネーム
ドメイン:
tld: co.uk

正規表現も最も効率的ではないので、助けや提案をいただければ幸いです。ありがとう!