我想在JJT文件中添加韩文字符:
| < #XCHARSET :
("_latin" | "_unicode" | "_kanjisjis" | "_graphic" | "national" (<WHITESPACE>)+ ("character" | "char"))
(<WHITESPACE>)*
>
| < #XCHARSET2 :
("_latin" | "_unicode" | "_kanjisjis" | "_graphic" | "_kanji1")
(<WHITESPACE>)*
>
Run Code Online (Sandbox Code Playgroud)
如何为此定义韩国人物.我是解析的新手,所以我不确定要在charset中添加它.有人可以请帮助.我是否必须添加_korean或是否还有其他关键字?
假设我有一个字符串:
argsStr = "server ('m1.labs.terad ''ata.com') username ('us ''er5') password('user)5') dbname ('def\\ault')";
Run Code Online (Sandbox Code Playgroud)
现在我使用以下代码来提取令牌:
'm1.labs.terad ''ata.com' <- token1
'us ''er5' <-token2
'user)5' <-token3
'def\ault' <-token4
Run Code Online (Sandbox Code Playgroud)
码:
regex re("(\'(.*?)\'\)");
typedef std::vector<std::string> StringVector;
StringVector arg_values;
boost::regex re_arg_values("('[^']*(?:''[^']*)*')");
boost::sregex_token_iterator name_iter_start(argsStr.begin(),argsStr.end(), re_arg_values, 0),name_iter_end;
std::copy(value_iter_start, value_iter_end,std::back_inserter(arg_values));
//putting the token in the string vector.
Run Code Online (Sandbox Code Playgroud)
将它放入字符串向量后,如何转换标记/字符串以用单引号替换双引号:
例如:
'm1.labs.terad ''ata.com' 应该成为'm1.labs.terad 'ata.com'并且
'us ''er5' 应该成为'us 'er5'.
我可以使用boost :: replace_all吗?
我有一个字符串:
string str1= "hello";
string str2="hel";
Run Code Online (Sandbox Code Playgroud)
我这样做是为了看看str1中是否有str2:
regex e = str2+"*"
bool x=regex_match(str1,e);
cout<<x;
Run Code Online (Sandbox Code Playgroud)
我得到这个:错误:从'std :: __ cxx11 :: basic_string'转换为非标量类型'std :: __ cxx11 :: regex {aka std :: __ cxx11 :: basic_regex}'请求正则表达式e = str2 +"";
如何在我的正则表达式中使用变量.有人可以告诉我我哪里错了吗?TIA.