boost::algorithm::split_regex doesn't work with boost::u32regex.
まだ誰も着手していません。
評価
調査の方向性
CMakeLists.txt の設定を使用して src.cpp の動作を再現し、UTF-8 のサンプルで split_regex と u32regex_replace を比較します。boost::algorithm split_regex のエントリポイントとその正規表現処理から始めます。サンプルが期待されるトークンに分割され、この動作をカバーする回帰テストがあれば完了です。
索引モデルが issue の本文から書いたものです。
説明
I want to split a UTF-8 string into tokens. However it looks like that split_regex() failed and just return original string. I also tried u32regex_replace() and it indeed replaced successfully.
src.cpp:
// CutWord.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include<vector>
#include<string>
#include <boost/algorithm/string.hpp>
#include<boost/algorithm/string/regex.hpp>
#include <boost/regex/icu.hpp>
#include<regex>
using namespace std;
int main()
{
string str="数学。数学。数学。";
//Split
vector<string> vs;
//regexU3 stores expression.
boost::u32regex regexU32= boost::make_u32regex("。");
boost::split_regex(vs, str,regexU32);
cout<<vs.size()<<endl; //only return 1.
//Check if u32regex_replace works.
string nsub=".";
string nstr=u32regex_replace(str, regexU32, nsub);
cout<<nstr<<endl;
};
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(main)
set(CMAKE_C_COMPILER /usr/bin/gcc CACHE PATH "" FORCE)
set(CMAKE_CXX_COMPILER /usr/bin/g++ CACHE PATH "" FORCE)
include_directories("/usr/local/include")
include_directories("./include")
add_executable(mp src.cpp)
#ICU
find_package(ICU COMPONENTS i18n io dt in uc)
target_link_libraries(mp ${ICU_LIBRARIES})
#boost
find_package( Boost COMPONENTS regex)
include_directories(${Boost_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIR})
target_link_libraries( mp ${Boost_LIBRARIES} )
target_compile_features(mp PUBLIC cxx_std_20)
add_custom_command(TARGET mp POST_BUILD
COMMAND echo "----------------------------------------------"
COMMAND ./mp
COMMAND echo "----------------------------------------------")
- 主要言語
- C++
- スター
- 131
- フォーク
- 117
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
boostorg/algorithm のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
Automated formatting オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
boostorg/algorithm の issue をすべて見る
似ている issue
-
AuTest Bug Tests
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/trafficserver#13714 ·
-
bug build
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
facebookincubator/velox#19143 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
tenstorrent/tt-metal#57393 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
objectionary/eo-graphs#74 ·