問題タブ [regex-lookarounds]
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.
java - 部分正規表現による先読み
次のようなデータがあります (正確には、このデータは Windows レジストリから取得されます)。
そこからパスを抽出する必要があるため、次のような正規表現を使用します。
しかし、ルックアラウンドはアトミックであるため、私が理解しているように、機能しません。これまでのところ、次のようなものを使用できます。
キャプチャするもの
私の質問は、一度にパスを抽出することは可能ですか? (正規表現を2つ使わないという意味です)
regex - 先読みvs後読み
「先読み」と「後読み」の概念を理解するのに苦労しています。たとえば、文字列「aaaaaxbbbbb」があります。「x」を見る場合、先読みとは「x」を「bbbbb」または「aaaaa」に向けることを意味しますか?私は方向を意味します。
php - 正規表現の先読み、後読み条件
次の例は、先読みアサーションを条件として使用する方法です。PHPのマニュアルで見つけました:http ://www.php.net/manual/en/regexp.reference.conditional.php
この正規表現についての説明は次のとおりです。
条件は、文字以外のオプションのシーケンスとそれに続く文字に一致するポジティブ先読みアサーションです。つまり、件名に少なくとも1つの文字が含まれているかどうかをテストします。文字が見つかった場合、件名は最初の選択肢と照合されます。それ以外の場合は、2番目と照合されます。このパターンは、dd-aaa-ddまたはdd-dd-ddの2つの形式のいずれかの文字列と一致します。ここで、aaaは文字、ddは数字です。
この例の条件として先読みアサーションを使用する理由を誰かに教えてもらえますか?ルックビハインドアサーションを使用しないのはなぜですか?このような条件として使用すると、件名の文字列とどのように一致するかわからないため、混乱します。前もって感謝します!
php - アイテムの前の行で preg_split
自動メール返信を作成していますが、返信に元のメールを表示したくありません。メールには、上記の返信が必要な行があります。しかし、電子メール プログラムは、この行の前に「2012 年 8 月 21 日午後 11 時 30 分に David が書きました:」のような行を追加します。
このコードを使用して、応答を 2 つの部分に分割しています。正しく機能していません。
分割しているメール本文は
私がやりたいのは、 --- ABOVE THIS LINE --- ビットより上のコンテンツを含む行で分割することです。言い換えれば、「8 月 22 日水曜日に...」という行を削除したいということです。すべての電子メール プログラムがこの行を挿入するとは限りません。この例では、電子メール プログラムは実際には空白行も追加しています。
xml - 他のタグを含まないxmlタグに一致する正規表現
次のような XML を探したいとしましょう。
そして、私は次のように XML を一致させたくありません:
つまり、ノードにタグが含まれていないアドレスを探しています。Address
Number
のようなパターンを試しました
また
しかし、私はそれを完全に把握することはできません:-(
何か案は?
regex - 「/」または文字列の末尾に一致する正先読み
オブジェクト ID が URL 内のどこにあるかに関係なく、特定の URL 内のオブジェクト ID と一致するように先読みを試みています。「/」または文字列の終わりまで一致するという考えです。いくつかのサンプル文字列を次に示します (太字は一致させたい ID です)。
- /オブジェクト/ obj_asd-1234-special
- /オブジェクト/ obj_xyz-15434 /メンバー
- /オブジェクト/ obj_aasdfaeastd-15d44 /その他/asdf
これを使用すると、 objects/obj_(.+?)(?=/) は、両方とも末尾にスラッシュがあるため、後者の 2 つに一致します。先読みが一致する文字として正規表現をサポートしていることを読んだので、この objects/obj_(.+?)(?=(/|$)) を試してみましたが、役に立ちませんでした。何かご意見は?
regex - GNU sed の先読み正規表現の何が問題になっていますか?
これは私がやっていることです(簡略化された例):
bar
で始まらないすべての行の前に置こうとしていfoo
ます。これはエラーです:
どうしたの?
.net - 角かっこで囲まれていないコンマを解析します
入力は、フィールドのコンマ区切りリストです。
これが例です。
問題は、一部の「フィールド」に角かっこで指定されたパラメーターがあり、それらのパラメーターにもコンマが含まれていることです。
角かっこで囲まれていない場合にのみ、カンマでそのような文字列を分割するために使用できる正規表現。最終結果を
php - 特定の単語を含まない部分文字列を効率的に削除する -
私は、後で必要になる xml 構造に php を使用して、いくつかの恐ろしい無効な html コードをマップしようとしています。これは非常にうまく機能しますが、処理できない部分が常にあります。したがって、決定は、xmlが有効なままになるように、そのコードを削除することです。これはどのように見えるかです。
したがって、目標は、「解析不能な残り」を削除するための解決策(おそらく正規表現ですが、私はどんな解決策にも対応しています)を見つけることです。
この正規表現で preg_replace を使用してみました
そして、それはかなりうまく機能し、$1 に入れたかった部分と正確に一致し、最後の と の間のすべてのものでしたが、xml が非常に大きいため、数ミリ秒後に計算がクラッシュします。正規表現が否定的な先読みを行うのにあまり適していないことは知っていますが、それほど悪いとは思いませんでした。
したがって、より効率的なソリューションが必要です。残念ながら、strrpos の後にさらに多くのタグがあるため、strrpos は使用できません。
c# - 正規表現の先読み-個別のセクション
次の(2つの)セクションを含むテキストがあるとします。
セクション1のアイテム(111、222、333など)のみを一致させたい。次のようなものを試した。,\d+,.*(?=Section2)
しかし、もちろん、これはセクション2までのすべてに一致し、別々のグループに一致するように指示する方法がわからない。Section1には、上記の例よりも多くのアイテムを含めることができることに注意してください。
編集:私は今、私が欲しいものを、\ d +、(?=。* Section2)で手に入れます。