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

c++ - PCRE でコンパイルされた正規表現を C/C++ に保存する

コンパイルされた正規表現 (regcomp()、PCRE 経由でコンパイル) をバイナリ ファイルに保存して、後でファイルから読み取って regexec() を呼び出すことができる効率的な方法はありますか?

それとも、コンパイルされた regex_t 構造体をファイルにダンプし、必要に応じて読み戻すだけの問題ですか?

0 投票する
18 に答える
12476 参照

regex - 複数の正規表現に対して 1 つの文字列を効率的にクエリする

10,000 の正規表現と 1 つの文字列があり、文字列がそれらのいずれかに一致するかどうかを調べて、すべての一致を取得したいとします。それを行う簡単な方法は、すべての正規表現に対して文字列を 1 つずつクエリすることです。それを行うためのより速く、より効率的な方法はありますか?

編集: DFA の (lex) に置き換えてみました。ここでの問題は、1 つのパターンしか得られないことです。文字列「hello」とパターン「[H|h]ello」および「.{0,20}ello」がある場合、DFA はそれらの 1 つだけに一致しますが、両方ともヒットするようにします。

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

regex - 時刻文字列を正規表現で照合する

文字列の時刻 (10.00) と日付と時刻 ("21.01.08 10.00") を一致させたいと思います。次の正規表現を使用しています。

しかし、これは 21.01.08 と 10.00 から 21.01 に一致します。

正規表現エンジンとして PCRE を使用しています。

アップデート:

すみません、もっとはっきり言うべきでした。日付と時刻は、より大きな文字列の一部です。その文字列から時間を抽出したい。

例えば:

「21.01.08 の 10.00 から図書館でパーティーが開催されます」 「21.08.08 - 10:00 にパーティーが開催されます」 10.00 から開始"

これは可能ですか?

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

php - HTML エンティティではない & に一致する正規表現 (PHP)

目標は次のとおりです。すべてのスタンドアロンのアンパサンドを & に置き換えることです。ただし、  などの HTML エンティティの一部になっているものは置き換えないでください。

スタンドアロンのアンパサンドのみに一致する PHP (できれば preg_ 関数) の正規表現が必要だと思います。preg_replace でそれを行う方法がわかりません。

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

php - 正規表現:完全なトークン以外のものに一致する

との間のコードを正規表現を使用し{foreach}て抽出したい次のスニペットがあります。{/foreach}

私は既に持っています:

でもその後は何もマッチできません。トークン全体として{/foreach}を一致させる方法はありますか?{foreach}{/foreach}の間のコンテンツにも「{$」トークンを含めることができることに注意してください。

編集:BaileyPとTomalakの答えは正しいですが、簡単にするためにBaileyPの答えを選択しました。

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

destructor - このコード行でバッファ オーバーラン エラーが発生するのはなぜですか?

コードは1行しかありません。これは次のとおりです。

関数内OnBnClickedButtonGo()。この関数はリリース モードでは失敗しますが、デバッグ モードでは問題なく動作します。

(Windows XP で Visual Studio 8 を使用しています。)

エラーメッセージは次のとおりです。

目に見えず、暗示されているデストラクタだと思います...しかし、私は本当に知りません。

PS: PCRE lib バージョン 7.8 に静的にリンクしています。PS2: あまり関連性はありませんが、PCRE ライブラリへのリンクに問題がある一部の人々を助けるかもしれません (それを整理するのに何時間もかかりました): 行を含めます#define PCRE_STATIC.

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

php - preg_match_all() [function.preg-match-all]: 不明な修飾子 ']'

いくつかの異なるパターンを使用していますが、それぞれにこのエラーが発生します。何が問題なのですか?

診断する私の最短のものは次のとおりです。

ありがとう

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

regex - Unicode 正規表現; 無効な XML 文字

有効な XML 文字のリストはよく知られており、仕様で次のように定義されています。

私の質問は、Unicode の一般的なカテゴリを使用して、コードポイントを実際にハードコーディングせずに、これ (またはその逆) の PCRE 正規表現を作成できるかどうかです。逆は [\p{Cc}\p{Cs}\p{Cn}] のようなものかもしれませんが、改行とタブが不適切にカバーされ、他の無効な文字がいくつか見落とされています。

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

php - preg_match は php ではなく regexbuddy で機能します

わかりましたので、作成したこの正規表現があり、RegexBuddyでは正常に機能しますが、phpにロードすると機能しません。以下はその一例です。

RegexBuddy を使用すると、次のように動作するようになります。

ドットが改行に一致することを確認し、大文字と小文字を区別しないようにしましたが、そのようにも機能します。

これがphpです:

[code][/code] を使用していることがわかります。これを抽出したら、htmlentities() を実行して、html コードをレンダリングする代わりに表示します。

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

regex - すべてゼロにすることはできない可変長の数字の文字列に一致する正規表現が必要です

フォームの入力を検証する必要があります。入力は 1 ~ 19 桁の数字であると予想しています。入力はゼロから始めることもできます。ただし、それらがすべてゼロではないことを検証したいと思います。入力が数値であり、1 から 19 の数字であることを保証する正規表現があります。

しかし、文字列全体がすべてゼロではないというチェックを含める方法がわかりません。私はこれを試しました

しかし、可変数のゼロを許可しているため、0000000000000000001 で失敗します。

文字列全体がゼロでないことを確認するにはどうすればよいですか?

ありがとう。

ASP.NET RegularExpressionValidator でこれを実行しようとしているので、単一の式を望んでいました。他にも選択肢があるので、これができなくても仕方ありません。