問題タブ [negative-lookahead]

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 投票する
6 に答える
1726 参照

javascript - Javascript RegExp を否定先読みに置き換える

JS を使用して、現在のページのクエリ文字列の値を置き換えようとしています。例: からcategory=Old Valueまでcategory=New Value。コードは次のようになります。

アンパサンドを含む値を除いて、正常に機能します。幸いなことに、すべてのアンパサンドは URL エンコードされているため、アンプを破棄する必要があることはわかっています。&の前。先読みを使用する必要があると思いますが、方法がわかりません。この正規表現を試しましたが、うまくいきませんでした:/category=[^&(?!amp;)]+&?/

ありがとう

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

regex - ( の後に ( がない) 単語に一致する正規表現

文字が続かない単語の行をチェックする正規表現は(どれですか? やってみ(\w+)(\?!\()たのですがうまくいかず(\w+)[^\(]、最後の文字を[^\(]一部として何にでも合わせます。Dプログラミング言語を使用しています。

一致するものの例:

次の と一致する必要asdfがあります。

しかし、これらではありません:

ただし、 ではasdf(blah)blahが一致します。また、asdf blahandasdf.beefでは、blahandbeefも一致します。

0 投票する
6 に答える
1278 参照

regex - 正規表現の否定先読み

私は正規表現の体操をしています。私は、適切なスペース内でヌル チェックが続かない as-operator の使用がある C# コードを検索しようとするタスクを自分自身に設定しました。今は C# コードを解析したくありません。たとえば、次のようなコード スニペットをキャプチャしたい

ただし、キャプチャしない

それどころか

したがって、任意のランダムな null チェックは「適切なチェック」としてカウントされるため、検出されません。

問題は、周囲に何か他のものが見つからないようにしながら、どうすれば何かを一致させることができるかということです。

私は単純なアプローチを試み、「as」を探してから、150 文字以内で否定的な先読みを行いました。

上記の正規表現は、残念ながら上記の例のすべてに一致します。問題は、先読みしてから否定的な先読みを行うと、先読みで「== null」が見つからない多くの状況が見つかる可能性があることです。

式全体を否定しようとしても、それは役に立ちません。それは、ほとんどの C# コードと一致します。

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

c# - 複数行のテキスト領域を抽出するための正規表現マッチング(C#)

次の形式で作成された大きなテキストブロックでテキスト領域をキャプチャしようとしています。

私はこれをほぼ解決しました

これは、テキスト全体に1つの領域しかない場合に機能します。しかし、複数ある場合、これにより、他のすべての「領域」がその1つの「テキスト」に含まれる1つのブロックだけが得られます。これはネガティブな先読みを使用して解決する必要があると感じていますが、正規表現を使用する非プロであるため、上記を正しく変更する方法がわかりません。誰かが助けることができますか?

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

java - ゼロ幅アサーションの負の先読みを使用して、文字列「abc」を含む文字列を照合します

みなさん、こんにちは。私は、ゼロ幅アサーションの負の先読みを使用して、文字列「abc」を含む文字列と一致させようとしています。これが私が得たものです。

結果は次のとおりです。

私が理解できないのは、文字列「abc」が一致しない理由です。アサーション「abc」の後に文字が含まれていません。誰かがこれがどのように機能するかを理解できますか?tks〜

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

php - 正規表現 - 否定先読みによるエスケープ

次の JSON エンコードされた文字列があります。

またはを除くすべての(すでに)エスケープされた文字/コードポイントをエスケープ\\\u0022\\\u0027する最も効率的な方法は何ですか? 負の先読み正規表現を使用preg_replace()することについて考えましたが、期待どおりに機能していません。出力は次のようになります。

この JSON-PHP-PCRE エスケープの海で迷っています。誰か助けてくれませんか?

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

php - Mod Rewrite Regex - 複数の否定先読み

現在、Mod Rewrite Regex が動作しています。

この正規表現は次の URL を受け取り、すぐ下の URL に変換します。

www.site.com/cmd1/param/cmd2/param2/stillparam2そしてそれをwww.site.com/index.php?cmd1=param&cmd2=param2/stillparam2

これで問題なく動作しますが、別の否定先読みアサーションを作成して、URL ブロック (/texthere/パラメーター) にアンダースコアが含まれないようにしたいと考えています。無効な文字列は次のようになりますwww.test.com/cmd/thing/getparam_valuehere。正規表現はcmd/thingをキーと値のペアとして解析し、残りの文字列を無視する必要があります。次に、別の RewriteRule を作成して、アンダースコアを含む URL のブロックを別の URL パラメーターとして追加します。次の URL 変換が行われます。

十分に明確でない場合はお知らせください。どんな助けでも素晴らしいでしょう。

NB: 既に存在するものの中にネストされた否定的な先読みを使用(?!(?!))しようとしましたが、2 つの否定的な先読みを使用しようとしました|が、どちらの解決策も機能しませんでした。もっと根本的に間違っているのではないかと思いました。

皆さんありがとう。

編集:次のことも試しました-これは本当にうまくいくと思いました(しかし、明らかにうまくいきませんでした!)

これにより、次のことが行われます。

www.test.com/cmd/param1/sortorder_1/に変換します www.test.com?cmd=param1/sortorder_1/

代わりに次のようになる場合: www.test.com?cmd=param1&sortorder=2/. /sortorder_2/変換するルール&sortorder=2はまだ作成されていませんが、私の言いたいことがわかると思います)。

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

regex - 正規表現パーサーとカスタムエスケープチャクター

プラス記号で開始および終了するサブ文字列を選択したい文字列があります。

例:

とを選びたい+name+ +b++/b+ですが、現在の正規表現は+ sign +可能な値として扱います。」

これは私が使用している正規表現です\+[\-@\w\s\d\/\!]*\+

前にを追加しようとしました[^/]が、それは前にあった文字を追加し、+処理できません+n++b+

ルックアラウンドとルックビハインドを理解しようとしていますが、適用方法がわかりません。

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

javascript - Javascript 正規表現: スペース文字が続かない単語を見つける

次のように、後にスペース文字がなく、前に @ がある単語に一致する JavaScript 正規表現が必要です。

@bug - "@bug" を見つけます。後ろにスペースがないためです。

@bug と私 - 「@bug」の後にスペースがあるため、何も見つかりません

@bug および @another - 「@another」のみを検索

@bug と @another と何か - 両方の単語の後にスペースが続くため、何も検出されません。

ヘルプ?追加: 文字列が取得され、FF はその末尾に独自のタグを配置します。基本的に@で始まる最後の単語だけでいいのですが、$(文字列の末尾)は使えません。