問題タブ [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 投票する
3 に答える
1033 参照

c# - 単一文字の区切り文字を使用しない RegEx マッチング

Medicare Eligibility EDI Example Responsesは、私が一致させようとしているものです。

次のような文字列があります。

次のような一致のセットが必要です。

私は一日中これに対処してきましたが、許容できるマッチング シナリオが得られないようです。forループを使用して手続き的にプログラムし、何かわからない場合はコロンのインデックスを見つけようとしています。

否定先読みを使用してみましたが、どこにも行きません。これは C# であり、テスト中にこのテスター(.Net) を使用しています。また、Regex Coach (非 .Net) も使用しています。

私はこれを使ってみました:

ただし、それは「LN:」、「FN:」などのキーとそのコロンのみに一致します。

私が使用する場合:

次の一致する 2 文字のキーとコロンも消費するため、他のすべてのキーと値のペアのみが一致します。

.Net で RegEx を使用してこれらを正しく一致させる方法はありますか? キーが常に大文字であるとは限りません。数字を含めることもできますが、常に 2 文字の後にコロンが続きます。

私が得ることができる助けを前もって感謝します。

0 投票する
4 に答える
22427 参照

regex - すべてゼロにすることはできない可変長の数字の文字列に一致する正規表現が必要です

フォームの入力を検証する必要があります。入力は 1 ~ 19 桁の数字であると予想しています。入力はゼロから始めることもできます。ただし、それらがすべてゼロではないことを検証したいと思います。入力が数値であり、1 から 19 の数字であることを保証する正規表現があります。

しかし、文字列全体がすべてゼロではないというチェックを含める方法がわかりません。私はこれを試しました

しかし、可変数のゼロを許可しているため、0000000000000000001 で失敗します。

文字列全体がゼロでないことを確認するにはどうすればよいですか?

ありがとう。

ASP.NET RegularExpressionValidator でこれを実行しようとしているので、単一の式を望んでいました。他にも選択肢があるので、これができなくても仕方ありません。

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

php - ローカル リンクを置き換え、外部リンクを保持

ホストされた wiki アプリケーション ページの HTML を本質的に返す API 呼び出しがあります。次に、substr、str_replace、preg_replace カンフーを実行して、サイトのスタイル ガイドに従ってフォーマットします。

左のナビゲーションをフォーマットするための呼び出しを 1 セット行います (pageX へのリンクを wikiParse?page=pageX タイプのものに変更します)。左側のナビで安全にこれを行うことができます。ただし、本文では、リンクが内部ページへのリンクであると安全に想定することはできません。外部リソースへのリンクである可能性が非常に高いです。したがって、http:// が続かない href= に一致する preg_replace を実行する必要があります。

ここに私の刺し傷があります:

これにより、ページのコンテンツ全体が取り除かれるようです。私がどこで滑ったか分かる人はいますか?遠く離れているとは思いませんが、次にどこに行くべきかわかりません。

乾杯

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

regex - 正規表現を使用した文字列の否定

正規表現で文字列の否定を行うことは可能ですか? string を含まないすべての文字列に一致させる必要があります".."^[^\.]*$を含まないすべての文字列に一致させるために使用できることはわかっています"."が、複数の文字に一致させる必要があります。".."を含む文字列と単純に一致させ、一致の戻り値を否定して同じ結果を得ることができることは知っていますが、それが可能かどうか疑問に思いました。

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

regex - 正規表現で正と負の条件を組み合わせるにはどうすればよいですか?

私は正規表現にかなり慣れていないので、助けが必要です。Perlで正規表現を使用していくつかの行をフィルタリングする必要があります。正規表現を別の関数に渡すので、1行で実行する必要があります。

"too long"を含み、で始まらない行のみを選択したい"SKIPPING"

これが私のテスト文字列です:

成熟度が長すぎるので
このボンドをスキップする成熟度が長すぎるのでこのボンドをスキップする成熟度が長すぎるので
このボンドを平手打ちするこの
成熟度が長すぎるこんにちは
これは長すぎる
こんにちは

正規表現ルールは、「長すぎる」で次のように一致する必要があります。

成熟度が長すぎるのでこの結合をスキップする成熟度が長すぎるので
この結合を平手打ち
こんにちはこの成熟度が長すぎる
これは長すぎる

そしてそれはスキップする必要があります:

「こんにちは」が含まれていないため「長すぎます」
「満期が長すぎるためこの債券をスキップします」が含まれていないため「スキップ」

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

regex - 正規表現:(?!...)はどういう意味ですか?

次の正規表現は、部分文字列FTWとODPの間のテキストを検索します。

(?!...は何をし)ますか?

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

java - Java 正規表現が機能しない - なぜ?

match.matches() は false を返します。これは奇妙です。なぜなら、この正規表現を使って文字列を rubular.com にテストすると、2 つの一致が表示されるからです。私は何を間違っていますか?

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

.net - これを行う代替正規表現 "\.(asmx(?!/js)|aspx|htm)"

「/js」の先読みが含まれないように、この正規表現を書き直す方法はありますか?

これは、パフォーマンスの面で心配する必要がありますか? HTTP リクエストのフィルタリングに使用されています。

編集: 明確にするために:「.asmx/js」を具体的に防止したいのですが、他のすべての.asmxリクエストを許可します。

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

regex - 正規表現のネガティブ先読み

私のホームディレクトリには、Drupalプラットフォームを含むdrupal-6.14フォルダーがあります。

このディレクトリから、次のコマンドを使用します。

このコマンドは、drupal-6.14フォルダーをgzipします。ただし、sites/allとsites/defaultを除くdrupal-6.14/sites/ のすべてのサブフォルダーは除外されます。

私の質問は正規表現についてです:

この式、除外したいすべてのフォルダーを除外するように機能しますが、その理由はよくわかりません。

正規表現を使用して

サブパターンxを含まない文字列を除くすべての文字列に一致します。つまり、サブパターンを否定します。

私は、これらの問題を解決するための一般的な戦略はネガティブな先読みの使用であることを理解していますが、ポジティブおよびネガティブな先読み(前/後ろ)がどのように機能するかを満足のいくレベルまで理解したことはありません。

何年にもわたって、私はそれらの多くのウェブサイトを読みました。PHPとPythonの正規表現のマニュアル、http://www.regular-expressions.info/lookaround.htmlなどの他のページなどですが、私はそれらを完全に理解したことはありません。

誰かがこれがどのように機能しているかを説明し、おそらく同様のことを行ういくつかの同様の例を提供できますか?

--アップデート1:

Andomarの応答について:二重否定の先読みは、単一の正の先読みステートメントとしてより簡潔に表現できますか。

すなわち:

に相当:

???

--アップデート2:

@andomarと@alanmooreによると、二重否定の先読みを正の先読みと交換することはできません。

0 投票する
5 に答える
5098 参照

regex - RegExp: ".html" で終わらないすべてのリンクを検索したい

私は正規表現の比較的初心者です (ただし、正規表現を何度も使用して成功しています)。ドキュメント内の「.html」で終わらないすべてのリンクを検索したい 思いついた正規表現は次のとおりです。

私のエディタである Notepad++ では、href=\"([^"]*)\"すべてのリンク (「html」で終わるものとそうでないものの両方) を見つけます。否定的な後読みが機能しないのはなぜですか?

私も先読みを試みました:

しかし、それもうまくいきませんでした。

誰でも助けることができますか?

乾杯、うなり声