問題タブ [preg-replace-callback]

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 に答える
83 参照

php - 複数の正規表現を使用した PHP preg_replace_callback

こんにちは皆さん、私はphpに次のコードを持っています

今、私はそれに以下を追加したい:

ユーザーがディレクトリをギャラリーに追加するかどうかを選択できるようにしたいので、次のようにします。

そのため、ユーザーはポーションを行う必要があります:{gallery: 'folder'}または{gallery: 'folder' dir: '1'}

ディレクトリオプションが存在しない場合でも置換が行われるように、正規表現に関してこれを行うにはどうすればよいですか? 前もって感謝します!

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

php - PHP preg_replace_callbackは5.3で動作しますが、5.2.17では動作しません

私は次のコードを持っています:

問題は、これが私のローカルホスト(PHP5.3)で機能することですが、サーバー(5.2.17)にアップロードすると、機能しません。上の一重引用符と関係があるようです"#\{gallery: '(.+?)'(?: dir: ([0-1]))?\}#i"

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

php - PHP:preg_replace_callbackは結果の順序を変更します

私は次のコードを持っています

私の問題は、私の文字列が次のようになっている場合です。

レンダリングされると、次のようになります。

順序が変更され、置き換えられたコードが一番上に表示され、他のすべてが一番下に表示されるのはなぜですか。

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

php - 配列パターンと置換を使用した preg_replace_callback

preg_replace()パターンと置換が配列である場所を使用する関数があります。置換を追跡するにはカウンターが必要なので、関数をクロージャーで使用するように変換してpreg_replace_callbackいますが、コールバックに渡される一致がどのパターンに一致するかを区別する方法を見つけることができないようです。preg_replace_callback を使用して配列 => 配列の置換を行う方法はありますか?

理想的には、これは私がやりたいことですが、 $pattern と $replace は各置換の間ではなく、呼び出しに入るときに評価されるため、明らかにそうではありません

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

php - PHP: 特定の場所で関数を実行する (preg_callback?)

[%xxx%] がある場合はいつでも関数を実行しようとしています (必要に応じて、プレースホルダーとして機能します)。

私はほとんどPHPの初心者ですが、なんとか頭を割って次のことを思いつきました(やったー、どうにかして正規表現の基本を理解することができました!):

e修飾子を使用してみました。preg_replace_callback を使用してみましたが、すべて多少は機能しますが、$maintext 変数をエコーする前に関数を実行する必要はありません。

この人たちの助けはありますか?

編集 正規表現は問題ではありません-それは正常に機能しています。$maintext をエコーするときにのみ関数を実行する方法を理解する必要があるだけです... preg_replace_callback はすぐに関数を実行します...

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

php - preg_replace_callback HTML 段落内の URL の一致

単一の HTML 段落にある URL を取得して、PHP の .xml で抽出しようとしていますpreg_replace_callback。現在、WordPress は以下を使用してこれを行います。

しかし、それは独自の行の URL に一致します。その周りに HTML はありません。私がする必要があるのは、次のようなものから URL を照合することです。

段落タグの前後のスペースは気にしません。その URL を抽出して、より詳細な情報に置き換えるだけpreg_replace_callbackです。

そこに何か助けはありますか?


更新: さて、私は次のようないくつかの段落を持つ投稿のテキストを持っています:

そのテキストから抽出したいのは、段落内のhttp://youtube.com/だけです。別の段落に Google.com へのリンクがあるようですが、それは必要ありません。私が欲しいのは、そのリンク (またはリンク) が独自の段落だけにあることだけです。コールバック 'http://youtube.com/' に引数として渡されます。

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

python - Pythonのre.subは入力パラメーターとして配列を取りますか?

http://www.php2python.com/wiki/function.preg-replace-callback/によると、re.subはPHPのpreg_replace_callbackと同等のPythonですが、phpバージョンでは文字列を照合するための配列を使用するため、次のことができます。複数の文字列を渡しますが、re.subは単一の文字列のみを受け取るように見えます。

それは正しいですか、それともPythonに関する私の弱い知識ですか?

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

php - PHP preg_replace_callback() および create_function() と eval() が機能しない

実際の環境でテストするために、Web サイトをインターネット上に展開しようとしています。これは、ユーザーが正規表現とユーザー定義のコールバック関数を使用できる、ある種のテキスト エディターです。

preg_replace_callback() 関数に問題があります。ホスティングの PHP バージョンが 5.3 より古いため、コードで匿名関数を使用できません (localhost で PHP 5.4 を使用しています)。したがって、コードのこの部分を書き直す必要があります (localhost で正しく動作します)。

この時点では、eval() を使用する危険性について話しているわけではありません。この問題については、後で適切な注意が払われます (「禁止された」単語リストのチェックなど)。問題は、以下の私の試みです

動作せず、エラーは発生しません。コードの何が問題になっていますか?

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


新しい情報。私はこれを試しました

create_function() 内の $replacement が空であることがわかりました。しかし、クラスの外で同じ create_function() を使用すると、 $replacement は空ではありません:

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

php - スキップエラーのあるphp domdocument loadHTML、または正規表現ソリューション

今日の初めに、html のすべてのリンクの hrefs を return fo some function に置き換えるための正規表現ソリューションについて質問しました..

その後、DomDocument を使用して回避できるように見えたので削除しましたが、できません...

私のhtmlには間違ったhtmlシンテックス、html5コードなどがたくさんあるので、loadHTMLもloadXMLも機能していません..

だれかが、href を検索し、すべての関数を呼び出して置換するための正規表現を使用したソリューションを提供できるかどうかを確認してください。同様の質問をすべて検索しましたが、すべて DomDocumenet の回答があり、使用できません..

古い類似の質問: A 要素の href 属性を取得する

ページ内のすべての href を検索し、前のリンクを維持するリンクに置き換えます - PHP

しかし、正規表現ソリューションが必要です

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

php - preg_replace_callback: 変数として置換コールバックを渡すと機能しない

これは動作しません

これは機能します

var 内に格納された関数を使用する理由とその方法を教えてください。:)