問題タブ [backreference]
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.
.net - 複数の式を1つに最適化
バックグラウンド
テキスト内の特定の単語を何度も何度も見つけなければならないシナリオがあります。私は現在、このような形式の一連の正規表現を使用しています...
..。
この正規表現オブジェクトのリストは、データのチャンクでループされ、一致が抽出されます(1回のregex.matches(data)呼び出しに対して1回のループ)
事前にコンパイルするなど、最適化するためにできる限りのことをしました。
ただし、リストは長くなり、プロセスを最適化するために、より大きなコンパイル済み正規表現の作成を開始することにしました。そのような...
これにより、速度が大幅に低下しますが、修正方法がわからないという副作用があります。
単語がデータ内に並んでいる場合(スペースで区切られている場合、たとえば「Word1 NextWord AnotherWord」)、「Word1」の正規表現には末尾のスペースも含まれているため、2番目の単語はキャプチャで失われます。「NextWord」で発生する可能性のある一致は、前の一致の一部であるため、先頭のスペースがなくなりました。
質問
誰でもこの正規表現を変更できますか(.net形式)
「.matches(data)」を1回呼び出すだけで、以下のリストにあるすべての単語をキャプチャできます。
?(効率の向上を犠牲にすることなく)
結果
私がこれについて言及しようと思っただけです。提案された回答/修正を先読みと後読みで適用した後、使用方法がわかりました:)、変更したコードの速度が347倍(以前のテスト速度の0.00347%)向上しました。これは、複数の式に入るときに間違いなく覚えておくべきことです。とても幸せです。
regex - 正規表現で算術演算はできますか?
整数とその後継者を一致させる方法があるかどうか知りたいです。
一致させたい: 「1 ビクター 2 マルコーニ」
ただし、「1 ビクター 3 マルコーニ」ではありません。
最初の数値を後方参照して次のようにインクリメントする方法はありますか: (\d) [[:alpha:]]* \1 +1 [[:alpha:]]* (INVALID)
正規表現が適切なツールかどうかはわかりません。そうでない場合、それは何ですか?
php - PHP preg_match_all 後方参照
次の入力文字列、パターン、および :
print_r の出力は次のとおりです。
Array[2] が Aditya Parikh を与えることがわかるように、Vinton Heuck と Ciro Nieli も受け取ることを望んでいました。しかし、しませんでした。
解決策はありますか??
c# - 後方参照を含む正規表現
C# アプリケーションで正規表現を記述して "{value}" を検索し、その前のテキストへの後方参照を "[[" まで、およびその後のテキストへの別の後方参照を "]]" まで作成しようとしています。 . 例えば:
"[[backreference one "、"{value}"、および "\r\nbackreference two]]" に一致します。
次の修正版を試してみましたが、うまくいきませんでした。単語の境界が欠けていると思います。検索しようとしているテキストに「{」が含まれているために問題が発生している可能性があります。
正規表現で可能かどうかはわかりませんが、一致する閉じ括弧を見つけることができれば理想的です。たとえば、次の例では "[[backreferenc[[e]] one ", "{value} "、および "ba[[ckref[[e]]rence t]]wo]]":
regex - 後方参照を含む正規表現
だから私はこのように構築された行があるこの非常に長いファイルを持っています:
角かっこの間で少なくとも 9 個の + または - 文字の文字列を検索する必要があり、これらの大かっこの間で一致したものと同じものを、角かっこの横の 2 つの「>」の間に見つける必要があります...これ;
java - 非キャプチャ グループへの後方参照を持つことは可能ですか?
replaceAll()
ターゲット文字列の直前と直後の文字をキャプチャする正規表現/置換ペアを作成しようとしています。
単純なケースで機能する私のバージョンは次のとおりです。
これは必要に応じて生成"abcd"
されます(最後に先読みすると、文字列の最後まで消費され、単一の呼び出しが機能しreplaceAll()
ます)。
ただし、ターゲットの後のキャラクターがターゲットの前のキャラクターでもある場合、解決できないように見えるエッジケースがあります。
出品致します"ab"
がよろしくお願い致し"abbd"
ます。正規表現は一致の先頭部分を消費したため、次の入力は一致しません。
周りを見回してみましたが、うまくいかないようです。
注:ループやコードなどを含むソリューションには興味がありません。言及されたエッジケースで機能する正規表現と置換文字列を探しているだけです。
php - パターンへの後方参照のための後方参照の使用
RegExを検討してください。これは、など(\w[0-9]).*\1
に一致します。d1akdhfafd1
R2ddsfasfasfdsfdR2
次のようにも一致する正規表現を書くことは可能ですか:、、、D1dfsadfadsfE3
.... ?z6adfdasfdfr2
e3654654e0
\w[0-9]
単なる例です。一般的な形式を検討してください(::A_Complex_Pattern::).*\1
javascript - JavaScriptで後方参照をインラインで更新するにはどうすればよいですか?
次のコードが与えられます:
期待される出力は次のとおりです。
実際の出力は次のとおりです。
これが私をこの回避策に導きました:
後方参照を更新するために一致を必要とせずにこれを行うにはどうすればよいですか?
java - Java-配列内の正規表現の後方参照
正規表現を使用してJava文字列を分割し、後方参照の配列を返す方法はありますか?
簡単な例として、単純な電子メールアドレス(文字のみ)からユーザー名とプロバイダーを取得したいとします。
これは出力する必要があります
inheritance - backrefs を使用した SQLAlchemy とポリモーフィック継承
以下に示すように、クラスがNode
あります。正常に動作しますが、定義をクラスLeaf (Node)
にシフトしたいと思います。どうすればそれを達成できますか?leafs
subleafs
Leaf (Node)
と
私はこれを試しましたが、失敗しました(部分的に):
私の削除テストケースはこれが好きではなく(ツリーのベース/ルートノードを削除してに依存しているだけですcascade='all'
)、次のように不平を言いました:
定義を変更したい理由は、のNode
すべてのサブクラスの定義で拡張したくないためです。これはLeaf (Node)
、後で紹介する可能性があります。さらに、私は間違いなく and を必要とし_x
ません。しかし、それらを省略すると( & )、次のような問題が発生します。_y
Leaf.root
Leaf.base
Node
_x =
_y =
とinの元の定義では後方参照を使用する必要はありませんでしたが、リレーションを接続するためにinを使用する必要があると思います。どうも。Leaf (Node)
leafs
subleafs
Node