問題タブ [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.
php - PHP 正規表現の例
PHPを勉強中の初心者です。正規表現とのさまざまな組み合わせを試しています。thisとthisを参照して、 thisの例を試しています。
私の疑問:
と の両方を出力として
preg_match_all('((a|b)*c)', 'ababc', $arr, PREG_PATTERN_ORDER);
与えるのはなぜですか。それはただであるべきではありませんか?ababac
a
ababac
で考えられるすべての出力を読み取ろうとしていると仮定すると
$arr
、配列の各要素をエコーすることなく、どうすればそれを行うことができますか? 現在、foreach
の要素を反復処理するために使用してい$arr
ます。これは正しいですか / もっと良い方法はありますか?が要素を
preg_match_all()
含む 2D 配列を与えるのはなぜですか。出力がどのように保存されるかを知る方法はありますか?$arr[$i][0]
$arr[0][$i]
$i
1つの投稿に多くの質問を投稿して申し訳ありません。変更する必要があるかどうか教えてください。
regex - 名前による C++11 正規表現キャプチャ グループ
ブーストベースの正規表現を C++11 正規表現に変換しています。というキャプチャ グループがありurl
ます。
ブーストを使用すると、名前でキャプチャ グループを取得するためにsmatch
呼び出すことができます。match.str("url")
ではstd::smatch
、インデックス付きのサブマッチのみが表示されます。
std::smatch クラスを使用して URL キャプチャにアクセスするにはどうすればよいですか?
python - 区切り文字を削除せずに文字列を分割するが、空のキャプチャ グループを抑制する
キャプチャ正規表現全体を括弧で囲むことにより、 delimiters を削除せずに文字列を分割しています。その意図は、1 つ以上の '[!?]' 文字で終わる文を一致させることです。
不要な空のキャプチャ グループを取得するようになったことを除いて、すべてが素晴らしいです。
(これはすべて、より複雑な正規表現とサブ関数内に深くネストされているため、実際にはハックは必要ありません。ソリューションを正規表現にしたいので、より複雑な正規表現に折りたたむことができます)
regex - 次のキャプチャ グループ表記は Perl にとって何か意味がありますか?
以下で、条件が と評価されるのはなぜfalse
ですか?
「見る」ことができない特別な意味はあります\11
か?\111
Perl
\1
regex - タブ区切りのテキスト行から中央の 2 つの列を抽出するにはどうすればよいですか?
2 つの正規表現が必要です。1 つは数字の 2 番目のブロックを見つけ、もう 1 つは数字の 3 番目のブロックを見つけます。私のデータは次のようなものです:
を見つけるための 1 つのコードと、 を見つけるための04
別のコード1988
。最初の 16 個の数字と最後の 3 個の数字を見つける式は既にありますが、2 番目と 3 番目のセクションの 2 つの数字を見つけるのに行き詰まっています。
java - 集団攻略で期待できる効果は?
出力は
私は出力を期待していましたが
私の期待される出力の理由は
パターンをいつ言及するかわかりません"(.*)(\\d+)(.*)"
; 期待される出力が得られないのはなぜですか?
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 の世界では何ですか?
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
正規表現も最も効率的ではないので、助けや提案をいただければ幸いです。ありがとう!