問題タブ [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 に答える
1843 参照

java - InputStreamReader.markSupportedはfalseです

から文字を「未読」にする必要がありInputStreamReaderます。その目的のために、私は使用markしたかったのですresetが、内部バッファや文字のキューを維持していないため、クラスにmarkSupported戻ります。falseInputStreamReader

私は知ってBufferedInputStreamいますが、PushbackInputStream文字が必要ですが、バイトベースでバッファリングするため、ここではどちらも適切ではありません。

Javaは、文字を読み取ることができないバッファ付き文字リーダーを提供していますか?実際、それをさらに制約させてください。私は(先読みの目的で)1文字だけ未読にする必要があります。私は本当に自分の先読みを維持する必要がありますか?

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

php - 「内部に*ない*」すべての「\」文字を置き換えます" tags

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

regex - 後読みアサーションとオプションの部分文字列の問題

Hyperic HQ によって生成されたアラートからの情報を解析する正規表現を作成しようとしています。アラートは、次のような件名の電子メールとして届きます。

非常に長い話を短くまとめると、存在しない可能性があるホスト名に関係なく、「Apache Web サーバー」の部分を一貫して取得できる必要があります。ただし、ホスト名が常に「myserver.net」で終わることは知っています。

私が持っている正規表現は次のとおりです。

"Resource:"私は、これが と の間の 0 個以上の文字に一致し"State:"、オプションでホスト名に続く (ただし含まれていない)ことを期待していました。

残念ながら、返されるのは"Server"、つまり、一致させたいビットの最後の単語です。これは、ホスト名が文字列に含まれているかどうかに関係なく発生します。

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

編集:以下のChadが提供するソリューション

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

c# - .NetのLookAhead正規表現-予期しない結果

私は正規表現の結果に少し戸惑っています(それでも構文に頭を悩ませようとしています)。私はhttp://regexpal.com/を使用して式をテストしており、そこで意図したとおりに機能しますが、C#では期待どおりではありません。

これがテストです-次の表現:(?=<open>).*?(?=</open>)

次の入力文字列: <open>Text 1 </open>Text 2 <open>Text 3 </open>Text 4 <open>Text 5 </open>

<open>Text1 <open>Text 2 <open>Text 3...などの結果を期待します

ただし、C#でこれを行うと、最初の一致のみが返されます。<open>Text1

正規表現から5つすべての「結果」を取得するにはどうすればよいですか?

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

regex - 正規表現、先読み、後読みの命名規則

なぜそれは直感に反するのですか?

/(?<!\d)\d{8}(?!\d)/、ここ(?<!\d)最初に来ますが、 lookbehindと呼ばれ、(?!\d) 次にlookaheadと呼ばれます。すべてが直感に反しています。

このように名前を付ける理由は何ですか?

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

asp.net - IE 7 のみでパスワード制御の正規表現の検証が奇妙に変更される

私は自分のアプリケーションで Asp.net のパスワード変更コントロールを使用していますが、ユーザーがパスワードを変更するときに強度要件を満たすのに問題があると言うまで、すべてがうまくいっているようです。これを調べると、彼女は IE 7 を使用しており、何を入力しても検証は失敗します (IE 7 でのみ。Firefox、IE 8、Chrome などはすべて期待どおりに動作します)。これが私が使用している正規表現です:

このサイトで見つけた他のいくつかと、人々が問題なく使用しているように見える他のいくつかを試してみましたが、同じ問題に遭遇しました.

私が最後に入力したパターン (数字、上または下のアルファ) は、最小で 5 回繰り返されると予想されるパターンのようです。例えば:

Hello1(動作しません)

11111Hello(動作しません)

Hello11111(作品)

繰り返しますが、これは IE 7 だけです。私はすでにこれに多くの時間を費やしており、困惑しています。誰にもアイデアはありますか??

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

perl - Perl 正規表現で肯定的な先読みがキャプチャにつながるのはなぜですか?

このコードが機能する理由がわかりません:

これは幅ゼロの一致であり、一致した文字列が $& に入れられないことはわかっていますが、なぜ $1 に入れられるのでしょうか?

ありがとう!

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

regex - " エンコーディング間の正規表現置換

交換できるようにしたいstyle=&quot;STUFF&quot;

私はこれが正しい正規表現であると考え続けています:

でもなぜか似合わない。

何か案は?

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

php - パターンに文字列を使用しますが、削除されないようにします

私は正規表現にかなり慣れていません。ちなみに私は何かを学びましたが、それでも知識を注いでいます!

だから私はそれがどのように機能するかについてあなたに説明を求めたいです!

私が次の文字列を持っていると仮定すると、ご覧のとおり、それらは互いに少し異なる方法でフォーマットできますが、非常に似ています!

今、私は最初のAZブロックコロンののすべてを置き換えたいので、たとえば

だから私の非常に初心者の知識で私はこのくだらない正規表現を解決しました!:-(

しかし、なぜこの正規表現は機能しないと確信しているのですか?:-)

plsは私を助けます!

PS:質問のタイトルはかなり説明されています。たとえば、よく知られている文字列ブロックを使用して別のブロックと一致させる方法も知りたいです...

..削除せずDTSTART

時間をありがとう!

よろしくルカフィロソフィ