問題タブ [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.
regex - 繰り返しキャプチャ グループの正規表現
正規表現を実行してデータを取得する必要がある大量のクラス データがあります。問題は、それを達成するために繰り返しキャプチャ グループが必要なことです。
必要な結果は2つの一致を返します
- マッチ
Group1:Womn St 157A
Group2:QUEERHISTORY MAKING
Group3:32680
Group4:LEC
Group5:A
Group6:SHAH, P.
Group7:TuTh 11:00-12:20p
Group8:IAB 13 - マッチ Group1:Womn St 171
Group2:SEX/RACE & CONQUEST
Group3:32710
Group4:LEC
Group5:A
Group6:O'TOOLE, R.
Group7:TuTh 2:00- 3:20p
Group8:DBH 1300
Group9:25610
Group10:26350
Group11:60320
Group12:32711
Group13:DIS
Group14:1
Group15:MONSON, A.
Group16: W 9:00- 9:50
Group17:HH 105
Group18:25612
Group19:26351
Group20:60321
javascript - 正規表現の置換は、.* なしで予期しない結果を返します
次の変換を行う正規表現を作成しようとしています。
Apple Orange
>AO
Load Module
>LM
anApple Orange
>O
toLoad Module
>M
適切なパターンを見つけましたが、奇妙な動作に気付きました。これが私の最初の試みです:
この式で 3 番目 (および 4 番目) のテスト ケースで置換を実行すると、驚くべき結果が得られます。
なぜそれは驚くべきことですか?文字列が大文字で始まっていないため、最初のグループは明らかに一致しませんが、2 番目のグループは単一の大文字のみを選択します: ([A-Z])
、その後のすべてではありません:([A-Z].*)
驚いたことに、.*
最後のキャプチャ グループの直後に追加すると、正しい結果が得られました。
なぜこれが起こっているのかは、JS と正規表現についての私の理解を超えています。どのような種類の闇の魔法が単一の文字[A-Z]
を複数の文字や小文字の文字でさえも返すのかを知ることに興奮しています。
実行可能なデモは次のとおりです。
regex - OR 演算子を使用した Scala Regex Extractor
Scalaで正規表現抽出/マッチングを短絡するこの冗長コードがあります。これは、文字列を最初の Regex と一致させようとします。一致しない場合は、文字列を 2 番目の Regex と一致させようとします。
結果は次のとおりです。
s == "ab" 次に、extractedValue == "b"
s == "cd" 次に、extractedValue == "c"
s == "gg" の場合は、extractedValue == なし。
私の質問は、正規表現または演算子を使用して 2 つの正規表現を単一の正規表現に結合し、引き続き Scala エクストラクタを使用するにはどうすればよいかということです。これを試しましたが、常に None の場合です。
javascript - Javascript 正規表現: 動的キャプチャ グループ
私は初めて正規表現に頭を悩ませようとしています。
文字列の場合
基本的には、開始パターン、終了パターン、およびその間の任意の数のパターンです。
myregex.exec string
ということで、順次復帰していただきたいと思います
私はこれのバリエーションを試しました
しかし、葉巻はありません...