問題タブ [boost-regex]
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.
c++ - Boost regexフォーマッター、カスタム関数の使用方法
boost :: regex_replaceを呼び出すときにカスタムフォーマット関数を呼び出すにはどうすればよいですか?
私のコードは次のとおりです。
ただし、「__fmtのテンプレート引数を推測できませんでした」というエラーが表示されます。-さて、Tは実際には何ですか?
c++ - AND演算子で正規表現を書くには?
ユーザーから入力文字列に一致する定義文字列があり、定義文字列を簡素化して、ユーザーが内部の正規表現を知る必要がないようにしたいと考えています。
私の考えは、*/-7721/-7722/-7723
任意の 4 桁の文字列に一致できるようにすることでしたnot 7721 AND not 7722 AND not 7723
。
4桁の数字である入力文字列に対して上記を実行するための正規表現を探しています。
表記法を使用してみまし?!
たが、文字列全体に不一致はありません。
(?![0-9]{4})
- 4 桁の文字列は使用できません。
((?!(7721))(?!(7722))(?!(77223))
- これもうまくいきませんでした
上記を実行する AND 演算子はありますか?
ありがとう、
regex - メール ID 一致の正規表現の作成に関するヘルプが必要
私は正規表現に非常に慣れていないため、助けが必要です。
送信者に電子メールIDがある場合、メッセージヘッダーに3つの電子メールIDのいずれかが見つかった場合にのみ一致する正規表現を探しています(a@gmail.com、b@gmail.com、およびc@rediffmail.comとしましょう)ヘッダーの場合、一致しないはずです。
この種の正規表現を作成することは可能ですか? はいの場合は、アドバイスしてください。
よろしく、 ゴルディ baharja@goldytips.info
c++ - 最後の正規表現が機能しませんが、その理由がわかりません
私は 2 つのベクトルを持っています.1 つは私の正規表現を保持し、もう 1 つは正規表現に対してチェックされる文字列を保持します。ほとんどのベクトルは正常に動作しますが、これを除いて (以下に示します)、文字列は正しい文字列であり、通常の文字列と一致します式ですが、正しいのではなく正しく出力されません。
入力文字列
コードは以下です
st[split_id] = "IATA"
splitMask[split_id] = "[a-zA-Z]{1,15}" <---
しかし、それはまだ企業名の間違った形式を出力します
正しいはずなのに、なぜ正しく印刷されないのかわかりません。誰か助けてください。
c++ - boost::regex を使用して C/C++ スタイルのコメントを削除する
正規表現を使用して、文字列から C および C++ スタイルのコメントを削除しようとしています。私は両方を行うと思われるPerl用のものを見つけました:
s#/\*[^*]*\*+([^/*][^*]*\*+)*/|//([^\\]|[^\n][\n]?)*?\n|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#defined $3 ? $3 : ""#gse;
しかし、これをboost::regex
コード ブロックで使用する方法や、boost::regex
.
参考までに: ここで正規表現を見つけました: perlfaq6で、必要なすべてのケースをカバーしているようです。
boost::spirit::qi
プロジェクトのコンパイルに多大な時間がかかるため、これを使用しないことをお勧めします。
編集:
したがって、短い正規表現は実際に機能しますが、長い正規表現は機能しません。
c++ - boost::regex_match(text, e) から例外をキャッチしようとするとコアダンプが発生するのはなぜですか?
次の例は、チュートリアルからのものです。実行すると、例外がスローされてからコアダンプがスローされます。次のように、catch() を使用して例外をキャッチし、コアダンプを回避しようとしています。
しかし、うまくいきません。助言がありますか?
ありがとう
-トッド
---- コアダンプ メッセージ BEGIN---
のインスタンスをスローした後に呼び出される終了
'boost::exception_detail::clone_impl >'
what(): 繰り返し演算子 " " は正規表現を開始できません。正規表現の解析中にエラーが発生しました: '>>>HERE>>> '.
中止 (コアダンプ)
- - 終わり - -
--- プログラム開始 ----
- - 終わり -
c++ - 静的としてリンクされたboost::regexを使用してプロジェクトをコンパイルする
VC2011プロジェクトでBoost.Regexを使用しており、最新のBoost.Regexが静的および動的ライブラリにコンパイルされています。
VCプロジェクトに静的ライブラリ(boost_regex-vc110-mt-1_49.lib)をリンクさせましたが、プロジェクトがコンパイルされて実行されると、次のように報告されます。
boost_regex-vc110-mt-1_49.dllがありません
私は同様の問題をグーグルで検索し、誰かが使用/D "BOOST_ALL_NO_LIB"
を提案しました。これを試しましたが、役に立ちません。
c++ - 同じレベルのタグを取得しますか?
Boostは例外をスローします。
正規表現の場合
着信文字列(std :: string)のサイズが140kbより長い場合。
同じレベルのタグを取得する必要があります。
3本の弦
ブーストオプションを変更する方法。その正規表現は任意のサイズの文字列を処理しようとし、例外をスローしませんでした。または、正規表現なしで同じレベルのタグを取得するにはどうすればよいですか?
c++ - ブースト正規表現を使用したテキストのトークン化
私は母の誕生日よりも早く正規表現を忘れてしまいます。それは主要なPITAです。とにかく、HTTP 応答ステータス行を解析するための RE が必要で、サブ要素を適切にキャプチャしました。私はこれを機能させました:
4 番目のキャプチャ グループは、特に単語のトークン化について、私が大騒ぎしていたものです。しかし、私はそれを必要としないので、私の仕事は終わりました。ただし、「\ 0」で終わるスペースで区切られた文をトークン化する方法を知りたいと思います。これにより、削除された単語のベクトル/配列が得られます。
次のフラグメントを機能させることができません
一致するべきではありません"hassan ali syed "
が、一致する必要が"hassan ali syed"
あり、キャプチャグループはhassan
ali
syed
(改行で)出力する必要がありますが、出力しますhassan
syed
syed
(3番目のsyedのスペースに注意してください<space>syed
。キャプチャグループは再帰的なエンティティを処理できないと思いますか?
それで、PCRE構文でトークン化タスクを指定するためのクリーンな方法はありますか?それにより、クリーンなトークンベクトルが得られます(繰り返しなし-つまり、ネストされたグループが空白を取り除こうとしないでください)。
これが仕事に適したツールではないことはわかっています.spirit / lexxまたはboost::tokeniseが最適であり、それが正しい方法ではないこともわかっています. .net では、スクリーン スクレイピングを行うときに、トークンがなくなるまで正規表現を本文に繰り返し適用することで、テキストの本文にトークンを見つけます。
c++ - パターンが検索されるインデックスの取得
各ループを繰り返しながら、パターンが見つかったインデックスを取得する必要があります。
距離を置いてみましたが、コンパイル時エラーが発生しています。
どうやって手に入れるのが一番いいでしょうか??
ありがとう