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

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

この正規表現を変更する必要があります

これに一致します...

これと一致しないために...

これを試しましたが、運がありませんでした

どんな助けでも大歓迎です。

ありがとう、アル。

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

regex - html タグを除外するための否定的な先読み

ユーザーが Web ページのコメント ボックスに html または javascript タグを入力できないようにするための検証式を考え出そうとしています。

以下は、1 行のテキストに対して正常に機能します。

..しかし、ドット (.) のため、改行文字は許可されません。私がこのようなものを使うと:

複数の行を許可しますが、式は最初の行の '<' と '>' のみに一致します。どんなラインにもマッチする必要があります。

これはうまくいきます:

しかし、それは醜く、多言語アプリケーションであるため、一部のユーザーにとっては壊れるのではないかと心配しています.

何か案は?ありがとう!

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

html - 正規表現: h1 の後に h2 が続き、その間に p はありません

h1 タグの後に h2 タグが続き、その間に段落要素がないかどうかを確認するには、正規表現が必要です。否定先読みを使用しようとしましたが、うまくいきません:

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

c# - C# 正規表現: 単一行オプションで否定先読みが失敗する

「単一行」オプションがオンになっていると、否定的な先読みを伴う正規表現が失敗する理由を理解しようとしています。

例 (簡略化):

これ:

シングルラインオプションがオンの場合は失敗し、シングルラインオプションがオフの場合は機能します。たとえば、これは機能します(単一行オプションを無効にします):

私の理解では、単一行モードでは単にドット「。」が許可されます。改行に一致させるために、なぜそれが上記の式に影響を与えるのかわかりません.

ここで私が見逃していることを誰かが説明できますか?

::::::::::::::::::::::

編集: (?!.*) は、キャプチャ グループではなく、 否定的な先読みです。

単一行モードがオンの場合も失敗するため、これは貪欲の問題ではないようです。Regex デザイナー (Expresso や Rad regex など) で試してください。

単一行をオフにすると、一致します(予想どおり):

1 回線 ON の場合:

最初のものにも一致しない理由がわかりません。最初の否定的な先読みが含まれていないため、式と一致するはずです。

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

java - 行末テキストで否定先読みを機能させる方法

次のような正規表現があります。

Javaを使用しています。次のテキストが失敗する原因になると予想していました。

ブラパラグラフ

最後にパラグラフがあるから

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

regex - Complex(?)正規表現:式ですが、別の表現ではありません

(より良いタイトルを作ることができるなら、してください)

やあ、

文字列が次の正規表現と一致することを確認する必要があります。

しかし、それを考えると、Guidと一致しないことを確認する必要があります。Guidに一致する正規表現は次のようになります(明らかに、これはマージされた結果で否定する必要があります)。

ここでの最後の要件は、(可能であれば)それらを単一の式にマージする必要があることです。

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

regex - 繰り返しなしで{1,2,3,4}のすべての順列に一致する正規表現

私はルビーで次の問題を実装しています。

これが私が欲しいパターンです:

1234、1324、1432、1423、2341など

つまり、4桁の数字の数字は[1-4]の間にあり、繰り返しがない必要があります。

簡単に理解できるように、私は2桁のパターンを取り、解決策は次のようになります:12、21

つまり、数字は1または2のいずれかであり、繰り返しではない必要があります。

繰り返しがないことを確認するために、2桁目の条件に$ 1を使用したいのですが、機能していません。

よろしくお願いします。

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

regex - 必要な特定のPerl正規表現

特定のディレクトリから特定のタイプのすべてのファイルを処理する必要があるperlスクリプトがあります。ファイルは.jupで終わるファイルである必要があり、ファイル名に「TEMP_」という単語が含まれていてはなりません。IEは、corrected.jupを許可する必要がありますが、TEMP_corrected.jupは許可しません。

先読みを試しましたが、明らかにパターンが正しくありません。

ただし、これにより、拡張子が任意のファイルや、ファイルTEMP_corrected.jupなどのTEMP_を含むファイルを含むディレクトリの内容全体が返されます。

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

regex - ネガティブルックを使用したPerl正規表現?これを適切に行う方法を理解できないようです

これをperlの正規表現で機能させようとしていますが、理解できないようです。「。website」を含むURLを取得したいと思います。このようなものを除いて(「.website」の前に「en」が付いている)。

これは、正規表現によって返されるURLの例ですが、上記のURLは拒否されます

これが私の試みです..私が間違っていることについてのアドバイスはありがたいです

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

php - 正規表現を使用して、負の先読みを使用して特定の文字シーケンスが見つかるまで、すべての文字をスキップします

私は基本的な正規表現で大丈夫ですが、pos/neg先読み/後ろ見の周りで少し迷子になります。

私はこれからID#を取得しようとしています:

前後に無制限の量の「もの」が存在する可能性があります。私は自分が試したことをデバッグするために正規表現コーチを使用してきましたが、もう前進していません...

これまでのところ私はこれを持っています:

これはidの後の余分な属性を処理しますが、keywordとidの間のすべてを無視する方法がわかりません。行くことができないことはわかってい[^id]* ますが、このようなネガティブな先読みを使用する必要(?!id)*があると思いますが、幅がゼロであるため、そこから先に進むことはないと思います。これも機能しません:

私は例を探し回っていますが、見つかりませんでした。あるいは、私は持っているかもしれませんが、彼らは私の頭をはるかに超えて行きました。私は彼らが何であるかさえ知りませんでした。

ヘルプ!ありがとう。

編集:[keyword stuff = otherstuff]にも一致する必要があります。ここで、id =はまったく存在しないため、id#グループに1または0を指定する必要があります。他にも、一致させたくない[otherkeywords id=32]があります。ドキュメントは、preg_match_allを使用して、ドキュメント全体で複数の[keyword id=3]と一致する必要があります。