問題タブ [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.

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

regex - 特殊文字を使用した正規表現ルックアラウンドは無効ですか?

私はこの正規表現を試しています

このテキストについて John James Taylor

しかし、ここで「後読みで無効なパターン」を取得しています http://www.rubular.com/r/TjD2d4oG5z

John や Joe が前にない "Taylor" と一致させようとしています。

ヒントはありますか?

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

java - 正規表現は、キャプチャ前の2つの類似したURLとの非常に具体的な一致のみ

だから私はそれと一緒にキャプチャされた画像拡張子を持つ特定の画像の名前だけを引っ張ろうとしています。唯一の問題は、2つの非常によく似たフォームと、画像のURLの表示方法のみの2つのフォームがあることです。

最初のURLは次のように表示されます

唯一の問題は、画像がこのように表示される場合があることです。

今、私はこれが決してエレガントではないことを知っていますが、このようなものが私が使用しなければならないものです:

これは、2つのURLが非常に類似しているため、これまで正常に機能していました。

もう1つの問題は、ソリューションが純粋な正規表現である必要があることです。java、php、javascriptはありません。文字通り、このようにすべての文字の組み合わせを事前に試してもらうことを試みましたが、これも非常に悪い方法論であることを私は知っていますが、私は正規表現の初心者です:

これに関する唯一の問題は、それらがどれほど類似しているかのために常に最初のURLを最初に見つけ、またsmall/私が必要としないURLの部分を常にキャプチャすることです。

どうすればいいですか?先読みか後読みかを考えていましたが、それらを機能させるのに十分な経験がありません。

編集:コアはJavaベースですが、現在の状況では、この問題を支援するためにJavaを使用することはできません:(

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

java - HTMLタグを無視するが、さまざまな終了アンカーを持つ単語境界で開始する正規表現

正規表現のみのソリューションが必要だと言って始めましょう。

3番目のプログラムプログラムでhtmlファイルから説明を取得しようとしています。このプログラムは Java ベースですが、ソース コードを操作することはできません。. 正規表現を送信するプログラムには、すべてのページのどこから説明を取得するかを指定する別の正規表現スクリプトが既に含まれています。内部で一致を定義すると、その情報を配列にさらに分解するこの便利な機能があります。

リスト項目かどうかに関係なく、説明のすべての文に一致させたいです。タグを取り除くことは理想的です。なぜなら、それらは\bマッチを開始する場所を指定するのに問題を引き起こしているからです.

最初は、単語境界と文末文字の間のすべてをキャプチャする正規表現ソリューションを作成できると思っていました。のようなもの\b([^.!]+)[.!]次に、説明にリスト項目の追加部分が含まれることがあるという問題に気付きました。さらに複雑なのは、リスト項目の最初の部分が太字またはイタリック体になる場合があることです。さらにまれに、私が理解できない理由でそこにランダムなタグが含まれて<br>いる可能性があります...</br>

以下は、陽気な記事の一般的なレイアウトの説明の例です。

私はいくつかの異なることを試しましたが、まだ正規表現初心者であり、正しく機能しないさまざまなリターンを得ました。これは、タグに含まれる文字から始まるすべてを分割したものです。

上記のコードは、このような配列を提供します(順序はランダム化されるか、少なくとも私が理解できない方法で編成されます)

ほぼ同一の同じものがいくつかの html タグに残る可能性があります。これli>は、単語の境界要件を満たすためだと思います。注: 以下のコードの末尾にスペースがあります

これにより、次のような配列が得られます

前に言ったように、私は正規表現の初心者であり、先読みを間違って使用していることは間違いありません。

解決策を教えてください!次に何を試せばいいのかわからない。

PS、記事は私が書いたのではなく、別のウェブサイトからコピーしました。攻撃的になろうとしない

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

java - レコード内の唯一のフィールドである場合にのみ*数値を取得するパターン/正規表現

これは、過去数日間私を夢中にさせてきました。レコードの検証とフィールドの抽出を同時に行うことで、一石二鳥です。私の戦略は、正規表現でこれを行うことでした:

これは、「行(レコード)の最初の数字」を意味すると理解しています。これまでのところ、これは最初のフィールドを取得する (そしてそれが数値であることを確認する) のに効果的でしたが、さらに一歩進めたいと思います。

正規表現を微調整して、それが唯一のフィールドである場合にのみ数値が必要であることを指定するにはどうすればよいですか?

つまり、レコードが単に の場合は1010 を取得したいのですが、レコードが の場合は10 4何も取得したくありません (これはプロジェクトにとって無効なレコードであるため)。

私は試した:

しかし、残念なことに、これ (およびその他の順列) は数字を取得しません。私がここに欠けているものはありますか?

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

regex - 正規表現のヘルプ:メールアドレスを見つけようとしています

Eclipse正規表現検索を使用して、特定のユーザーがuser.a@domain.comまたはuser.b@domain.comではないファイル内の電子メールアドレス(つまり、anything@domain.com)を見つけようとしています。

太字の項目の下にある文字列を使用して見つける必要がありますが、他のアドレスはスキップする必要があります: bob @ domain.com、user.b @ domain.com、andy @ domain.com user.a @domain.com

私は以下のことをしましたが、私が思うように機能していません。\ b(?! user.b)\ w * @ domain.com \ b

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

java - JavaでRegExを使用して、括弧の間にあるパラメーターを抽出します

JSPからヘッダーファイルの名前を抽出するユーティリティを書いています。JSPを1行ずつ読み、必要な行を見つけるのに問題はありません。正規表現を使用して必要な特定のテキストを抽出する際に問題が発生しました。多くの同様の質問を見た後、私はレンガの壁にぶつかっています。

内部から照合する文字列の例は次のとおりです。

この例では、必要なのはMY_HEADERだけです。私がこのタグを持っているときはいつでも:

私はこれの間に来るものが必要です:

これが私が現在持っているものです(これは機能していません、私は追加するかもしれません):

これらのヘッダー名を抽出するには、JavaRegExAPIと正規表現を使用できる必要があります。

この問題に関する助けをいただければ幸いです。ありがとう!

編集:

ありがたいことに、この問題を解決しました。トリッキーな部分は、適切な正規表現が与えられた後、正規表現にフィードする文字列には常に2つの "/"文字((/ "MY_HEADER" /))が必要であることを考慮に入れる必要がありました。パターンでエスケープされます。

これがうまくいったものです(助けに感謝します;-)):

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

regex - 文字列間のガイドを見つける

問題:

guid = guid であるすべての一致を取得しようとしています。1 つの一致が次のような一致のコレクションを受け取ることを期待しています。

GlobalSection(NestedProjects) = preSolutionとの間のすべての guid = guid を一致させようとしていEndGlobalSectionます。ファイルには guid = guid が存在する場所が他にもあります。

以下はデータ スニペットです。

私が試したこと:

guid = guid と一致させるために使用しているものは次のとおりです

これは、明らかに、試合の場所を差別しないことを除けば、うまく機能します。したがって、ファイルの他の部分から他の一致を受け取ります。私は(多くのバリエーションで)のように前向きな後ろ姿を使おうとしています:

後読みまたは何か他のものを誤用していますか?

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

regex - 正の一致正規表現演算子を使用して文字列に対して負の一致を行う方法はありますか?

具体的には、同等のものを達成する方法はありますか

=〜のみを使用し、否定演算子を使用しない場合はどうなりますか?

具体的には、文字列が指定された値と一致しないことを確認する必要があります。テスト関数は正規表現オブジェクトを取得し、それらを値に積極的に適用します。 値は検索された文字列にまったく含まれていてはならず、先読みアサーションと後読みアサーションが複雑になります。

次のようなものが良いテストかもしれません:

ルックアラウンドアサーションを使用してこれを行う方法があると思いますが、まだ戸惑っていません。Perl固有の回答は許容されます。

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

regex - ポジティブルックビハインドは機能しませんが、先読みは機能します

すべての数字を含む文字列があります。

次のことを確認したい:

  1. すべての数字は、、およびの範囲に0-4あります
  2. 文字列の最小の長さは5

だから、私はこの正規表現を使用しました:

予想通り、これは仕事をします

しかし、ポジティブルックビハインドで使用した場合の上記の正規表現は機能しません

なぜ機能positive look behindしないのにlook ahead、この場合は機能するのか

編集

はい、使用できます

^[0-4]{5,}$

look-behindしかし、問題は、上記の場合になぜ機能しなかったのかということです

これは、機能したが機能しなかったこの質問に関連していましlookaheadlookbehind

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

javascript - JavaScript 正規表現でオプションのグループを先読みで一致させる

正規表現を使用して文字列一致の問題を解決しようとしています。次の形式の URL を照合する必要があります。

そして、このフォームの URL を「拒否」する必要があります。

末尾の「/」は明らかにオプションです。

だから基本的に:

  • ホスト名の後に 2 つまたは 3 つのグループがあり、2 番目のグループが"sets"と等しい場合 、正規表現は一致しません。
  • 「sets」は URL のどこにでも含めることができます
  • 「セット」は完全に一致する必要があります

私がこれまでに思いついたのはhttp(s)?://(www\.)?soundcloud\.com/.+/(?!sets)\b(/.+)?、失敗することです。

助言がありますか?タスクを簡素化するライブラリはありますか (たとえば、末尾のスラッシュをオプションにするなど)?