問題タブ [backreference]

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

.htaccess - RewriteCond-値のない後方参照

この奇妙な問題が発生しました:このアドレスwww.mydomain.com/index.asp?pag=XXX&id=YYYをwww.mydomain.com/XXX-YYYに変換しようとしています

私はしようとしています

しかし、「%1-%2」を取得した結果、正しく表示できないようです。どこが間違っているのでしょうか。

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

java - Matcher.replaceAll() での複数の後方参照

Matcher.replaceAll()単一の 後方参照を使用するとうまく機能します(つまりMatcher.replaceAll("$2"))。

しかし、私はそれを2つ以上の後方参照で動作させることができませんでしたMatcher.replaceAll("$1$2").

Matcher.replaceAll()複数の後方参照をサポートしていますか? もしそうなら、それを使用するための適切な構文は何ですか?

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

regex - 正規表現での後方参照の否定

文字列がこの予測形式の場合:

「(引用符)も'(一重引用符)である可能性があり、終了文字('または ")は開始文字と同じになります。引用符の間の文字列を一致させたい。

(2つの\は、=記号の近くにスペースを入れることを許可します)

最初の「キャプチャされたグループ」(最初の括弧のペア内)-開始引用符と一致する必要があります。これは、'または"のいずれかである必要があります-最初のグループでキャプチャされたものとは異なる任意の数の文字を許可することになっています。次に、グループにキャプチャされた文字(囲み引用符)を期待します。

(必要な文字列は、2番目のキャプチャグループでキャプチャする必要があります)。
ただし、これは機能しません。

これは行います:

ただし、開始引用符と終了引用符(二重または単一)の両方が同じであることを確認したいと思います。


編集
目標は基本的に、クラス属性に特定のクラス名が含まれているアンカーの開始タグを取得することでした。私は、(')または( ")を含むクラス属性のまれな機会をカバーしたいと思いました。

ここでのすべてのアドバイスに従って、私はパターンを使用しました。

意味
タグオープンサインを見つけてください。
スペースを許可します。単語
a を見つけます。 非終了タグを許可します。 「class(任意のスペース)=(任意のスペース)」を検索 します。次のいずれかの開始引用符を取得します:("または'または\"または\')。 Alan Mooreの回答から:冒頭の引用符以外の文字を許可します。 クラス名を検索 開始引用符以外の文字を許可します。 オープニングと同じクロージングクォートを見つけます。 uncloseing-tag文字を許可します。 終了タグcharを見つけます。









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

asp.net - C#でのASPX属性の正規表現解析

正規表現を使用して ASPX ファイル内の属性値を検索する必要があります。

つまり、不正な HTML や HTML 関連の問題について心配する必要はありません。

特定の属性 (LocText) の値を見つける必要があります。引用符の中にあるものを取得したい。値内の <%=、<%#、<%$ などの ASPX タグは、この属性には意味がないため、その一部と見なされます。

私が始めた正規表現は次のようになります。

これはうまく機能し、結果テキストである最初のグループは、そこで許可されていない二重引用符を除くすべてを取得します (代わりに " ; を使用する必要があります)

ただし、ASPX ファイルでは一重引用符を使用できます。その場合、2 番目の正規表現を適用する必要があります。

これら 2 つの正規表現を使用できますが、それらを接続する方法を探しています。

これも機能しますが、不要な数のグループを作成しているため、あまり効率的ではないようです。これは、後方参照を使用して何らかの方法で実行できると思いますが、機能させることができません。

これにより、一重/二重引用符を最初のグループに保存し、最初のグループで見つかった文字ではないものを読み取るように指示したと思いました。これは、最初のグループからの引用によって再び囲まれています。明らかに、私は間違っており、そのようには機能していません。

最初の 2 つの式を接続して、取得したい属性の値を 1 つのグループとして最小限のグループを作成する方法はありますか? 一重/二重引用符の値に後方参照を使用することは可能ですか、それともそれらの意味を完全に誤解していますか?

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

xml - メモ帳 ++ 正規表現後方参照がありません

私はこのHTML部分を持っています:

この行は多くのファイルに存在します。

私はそれを置き換える必要があります:

通常の正規表現 (Ctrl + F) がうまく機能します。残念ながら、置換テキストは長すぎて通常の正規表現では使用できないため、TextFX の高度な検索と置換プラグインを使用しました。

これは私の発見です:

これは私の置き換えです:

検索は機能します (つまり、行が強調表示されます) 。ただし、置換は機能しません。代わりにこれを取得します:

これらのオプションは、[検索/置換] ウィンドウでチェックされます。

  • 通常のExpr
  • 自動グラブ検索テキスト
  • 包む

前もって感謝します

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

regex - R 正規表現で 9 つを超える後方参照を使用する

\10、\11 などの置換文字列が正しく読み取れないため、次のコードは機能しません。\10 を \1 として読み取り、代わりに 0 を出力します。修正を手伝ってもらえますか? スレッドの 1 つに、グループのキャプチャまたは名前付けを使用することになっているという回答がありますが、それらの使用方法がよくわかりません。

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

php - PHP preg_replace_callback ハッシュ記号 ('#') を処理するための正しいエスケープ

私は Twitter フィードでいくつかの作業を行っており、ハッシュタグをクリック可能な URL に変換したいと考えています。

ハッシュタグは、ハッシュ記号 (「#」) の直後に検索タグとして機能する単語が続くもので、スペースは含まれません。

例は...

ここには #Shoreditch と #AutoClubRev の 2 つのタグがあります。

これらはそれぞれ次のリンクになるはずです...

https://twitter.com/#!/search?q=%23ショアディッチhttps://twitter.com/#!/search?q=%23AutoClubRev

ここでは、バニラの preg_replace だけでなく、preg_replace_callback を使用する必要があると想定しています。これは、後方参照 ($1) を取得して、表示するだけでなく変更しようとしているからです。しかし、もちろん私は間違っているかもしれません。どの機能を使用するかについては、私はあまり気にしません - それが仕事をし、比較的効率的である限り。

ありがとう、ピート

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

php - modrewrite 後方参照でエラーが見つかりません

コンテンツを (存在しない) サブフォルダーとして表示したい。これらのサブフォルダー文字列はすべて file.php に送信し、変数 "n" として添付する必要があります。

私の PHP スクリプトはすでに正常に動作しています。(変数をアドレス バーに添付すると、file.php は表示すべきすべてを表示します。) しかし、.htaccess の定義に少なくとも 1 つのエラーがあり、ここ数日は見つかりません。(すべてのページには引き続きアクセスできますが、サブフォルダーとして文字列 (許可された文字のみ) を入力すると、何らかの理由で file.php に到達できません。(すべての実際のファイルは、実際のドキュメントであるため、引き続きアクセスできるようになっています)またはサブフォルダー。.htaccess ファイルの条件によって書き換えルールから除外する必要があります。)

私の定義が私がしたいことをしない理由を誰かが私にヒントを与えることができますか?

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

php - PHPの後方参照とそれに続く数字で始まる変数

私はconfig.phpファイルを更新する動的な方法に取り組んでいましたが、完全には解決できない興味深い不具合に遭遇しました。以下は、config.phpファイルを更新するための私のコードです。

論理はかなり健全です。「config-」で始まるPOST変数を検索し、「config-」の後のすべてを、更新する構成ファイルのキーの名前として使用します。構成ファイルの形式は次のとおりです。

90%の場合、これは完全に機能し$valueますが、数字で始まる場合$3、の最初の数字は$value置換中に完全に無視されます。

たとえば、設定ファイルには次の値があります。

この値を変更せずにキーを変更せずにフォームを送信すると、この行は突然次のようになります。

一重引用符がないため、構成ファイルの解析(サイト全体の破損)が妨げられ、起動するデータが失われます。PHP preg_replaceのマニュアルを読んだ後、いくつかの場所で中括弧を使用してみました(「例#1後方参照とそれに続く数値リテラルの使用」を変更)。次のいずれも機能しませんでした。

最初の3つはまったく同じ問題を引き起こし、交換には影響しません。4番目はまったく機能せず(構文エラー)、5番目は実際にはすべての後方参照が無視されます。また、次のように一重引用符と連結を使用してみました。

繰り返しになりますが、前の3つの例と元のスクリプトと同じ問題が発生しました。

誰かがこれを以前に解決したか、少なくとも新しいアイデアを持っていることを願っています。

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

php - preg_replace後方参照日付関数

PHP 5.2.15

{date[F]}をdate関数に置き換えようとしています。

私はうまく機能するパターンを持っています。

preg_replace_callbackを試しましたが、create_function()を使用しても機能しないようです。

試したメソッドで、ほとんど未定義のエラーが発生します。