私はboost :: tokenizerを探していましたが、ドキュメントが非常に薄いことがわかりました。 "イルカ - モンキー - ヒヒ"のような文字列をトークン化し、すべての単語をトークンにすることは可能ですか?これらの例から、私は一文字区切り文字が許されているのを見ただけです。ライブラリはより複雑な区切り文字のために十分に進んでいないのですか?boost :: tokenizerを文字列区切り文字で使用する
答えて
自分の好きなことをするには、自分でTokenizerFunctionと書く必要があります。
私は参照してください。あらかじめ作られたものがあることを期待していましたが、私はあまりにも多くのことを望んでいたと思います。 – Martin
1つの方法は、boost :: regexを試すことです。カスタムトークナイザと比較してパフォーマンスが不明です。
std::string s = "dolphin--monkey--baboon";
boost::regex re("[a-z|A-Z]+|--");
boost::sregex_token_iterator iter(s.begin(), s.end() , re, 0);
boost::sregex_token_iterator end_iter;
while(iter != end_iter)
{
std::cout << *iter << '\n';
++iter;
}
これはいいですね。それが動作すれば、それは私の投票を得る。 :) –
iter_splitを使用すると、複数の文字トークンを使用できます。 次のコードは生成します以下:
イルカ
月-キー
ヒヒ
#include <iostream>
#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/iter_find.hpp>
// code starts here
std::string s = "dolphin--mon-key--baboon";
std::list<std::string> stringList;
boost::iter_split(stringList, s, boost::first_finder("--"));
BOOST_FOREACH(std::string token, stringList)
{
std::cout << token << '\n'; ;
}
これは、文字列全体のコピーを作成するという欠点があります。トークン化された文字列が大きい場合、これは問題です。ブーストトークナイザはこれをしません。 –
私はテーマはかなり古いですけど、それは、Googleのトップのリンクに示されているIとき
:はので、私は念のために、TokenizerFunctionの私のバリアントを追加します検索「文字列でトークナイザ後押し」
これはコミュニティのwikiをマークされているなぜ我々は興味があるだけ
実装は理想的ではありません(バグを持つ可能性があります)。 – Alek86
- 1. 区切り文字を区切り文字として使用
- 2. 電子メール文字列を区切り文字で区切る
- 3. 複数の区切り文字で区切る文字列
- 4. 隣の区切り文字で区切られた文字列
- 5. JavaScript文字列区切り文字
- 6. クエリ文字列区切り文字
- 7. 分割文字列区切り文字
- 8. 文字区切り文字を使用した列の分割
- 9. シェルで区切り文字として文字列を使用して文字列を切ります
- 10. カンマ区切り文字列
- 11. スプリットカンマ区切り文字列
- 12. パイプ文字区切り文字でフィールドを区切る方法
- 13. 区切り文字なしの文字列をカンマ区切りの文字列に変換する方法は?
- 14. Python:区切り文字のリストで区切り文字
- 15. 区切り文字で文字列を検索するファイル
- 16. Haskell - 区切り文字で文字列を分割する
- 17. リピートパターンの文字列を保持区切り文字で区切る
- 18. Mysqlクエリ... WHERE(コンマ区切り文字列)IN(カンマ区切り文字列)
- 19. 文字列を '|'で区切ります。
- 20. 文字列と数字の区切り
- 21. 区切り文字なしでC#で文字列を文字列に分割
- 22. RegexLineTokenizerでタブ区切り文字列にregexを使用する
- 23. 文字列内の区切り文字間で文字を削除する
- 24. PHP;区切り文字と区切り文字の間の文字列を削除する方法は?
- 25. リテラル区切り文字(\ Q \ Eブロック内の区切り文字)
- 26. 長い文字列を区切り文字で小さな文字列にダイビング
- 27. 複数の区切り文字を使用した区切り
- 28. 複数の区切り文字で区切られた文字列
- 29. Unix:文字列を正規表現の区切り文字で切り取る
- 30. 文字列の区切り文字を別の区切り文字に置き換えます
トークナイザ通常のブーストのように、
と使用を作成することができた後? –
私はそれが少し拡散している場合に私の質問を明確にすることが他人に許されると考えました。おそらく、次回までそれを読んでおくべきでしょう。 – Martin