問題タブ [pcre]

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

php - PHPPCREを使用した文字の削除

文字列$randomがあり、コンマと数字以外のすべてを破棄したい場合、PHP PCREでこれを行うにはどうすればよいですか?

\d数字が一致することはわかっていますが、PCREの残りの部分は取得できません。

0 投票する
5 に答える
319 参照

php - PHP PCRE の問題

PHP PCRE に問題があり、POSIX に慣れているので、何が間違っているのかよくわかりません。基本的に、この関数は、カンマで区切られた最大 10 個の数字に一致します。ただし、文字列sdf(およびおそらく他の多くの文字列) にも一致していますが、その理由はわかりません。誰でも私を助けることができますか?

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

c - cを使用したlibpcreの大文字と小文字を無視する

pcre_compileとpcre_execを使用するときに大文字と小文字を区別するにはどうすればよいですか?

どのオプションを使用し、どこで指定しますか?

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

regex - 正規表現は繰り返しグループ {0,2} または {0,4} に一致しますが、{0,3} には一致しません

まず、これはpregを使用しています。

一致させようとしている文字列:

私の正規表現とその一致:

奇妙なことに、単一の「a」を削除すると機能します。また、(\S*\s*){0,3}\Spまたは(\S*\s){0,3}\S*p両方が機能します。

「bcd xp」ではなく、3 番目のケースで一致しない理由を誰か説明できますか?

ティア!

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

php - PHP正規表現のセグメンテーション違反を防ぐ必要があります

次のセグメンテーション違反が発生するのはなぜですか。また、どうすればそれを防ぐことができますか?

私はそれが....それを待つ....スタックオーバーフローを引き起こしていると信じています。

編集:

上記は、問題を示すパターンの簡略版です。より完全なバージョン:

目的は、有効な英語の文の終わりのように見えるもので終わるように見えるhtmlブロックを見つけることです。この方法は、「コンテンツ」テキスト(記事の本文など)と「レイアウト」テキスト(ナビゲーション要素など)の違いを区別するのに非常に優れていることがわかりました。ただし、タグの間に大量の空白があると、爆発することがあります。

0 投票する
7 に答える
71593 参照

php - PHP の preg_match と UTF-8

preg_matchを使用して、UTF8 でエンコードされた文字列を検索しようとしています。

"H" は文字列 "¡Hola!" のインデックス 1 にあるため、これは 1 を出力するはずです。しかし、それは2を出力します。正規表現で「u」修飾子を渡しているにもかかわらず、件名をUTF8でエンコードされた文字列として扱っていないようです。

私のphp.iniには次の設定があり、他のUTF8関数は機能しています:

何か案は?

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

php - PHP ファイル書き込みの最適化

編集: この質問の最後に最適化の結果があります!

こんにちは、最初に特定のフォルダー内のファイルをスキャンし、次にすべてのファイルを 1 行ずつ読み取り、多数の "if...else if" の後に、新しい変更されたファイルを別のフォルダーに開いたときの名前で書き込む次のコードがあります。 .

問題は、ファイルを1行ずつ書き込むのが非常に遅いことです。デフォルトの 60 秒の制限は、25 程度のファイルに対してのみ十分です。ファイル サイズは 10k から 350k までさまざまです。

コードを最適化して実行を高速化する方法。行ごとに読み取り、すべての行を配列に入れてから、その配列全体を新しいテキストファイルに書き込む方が良いですか (行ごとの読み取り/書き込みに対して)。もしそうなら、それは実際にどのように行われますか。

よろしくお願いします ----- コードは次のとおりです -----


編集:ここにいる全員が私にくれたヒントに基づいてコードを書き直した後の非常に興味深い結果です。

60 個のテキスト ファイル、合計 5.8 MB

すべての最適化の後 (ループの前に preg->strpos/strstr と $handle を変更): 4 秒。

上記と同じですが、strpos/strstr -> stripos/stristr: 8 秒に変更されました。

上記のように、stripos/stristr を変更 -> preg: 12 秒。

上記のように、ループ内で fopen を変更しました: 180 秒の実行制限後に 45/60 ファイル

完全なスクリプトは次のとおりです。

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

regex - preg マッチのメールアドレスと名前 from to

次の形式から名前とメールを見つけたいです(また、メールアプリケーションでメールを送信するために使用されている他の形式を知っている場合は、コメントで教えてください:))

次のフォーマット文字列の名前と電子メールを知るにはどうすればよいですか (その 1 つの文字列で、次の任意の形式にすることができます):

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

php - Get position of all matches in group

Consider the following example:

#xA;

What it does is returning only the last 'a' in the series, but what I need is all the 'a's.

Particularly, I need the position of ALL EACH OF the 'a's inside the string separately, thus PREG_OFFSET_CAPTURE.

The example is much more complex, see the related question: pattern matching an array, not their elements per se

Thanks

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

php - 肯定的な後読みの前のグループ化が一致しません

次のコードを使用します。

$target 内の NAME、FUNC、および各 P の位置を取得する必要があります (つまり、PREG_OFFSET_CAPTURE)。このパターンは Ps に対して機能しますが、名前付きグループ「ruleName」または「funcName」のいずれとも一致しません。

私は何が欠けていますか?

ありがとう。