小编hyd*_*123的帖子

JJT文件中的韩文字符集

我想在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或是否还有其他关键字?

java unicode parsing javacc

6
推荐指数
1
解决办法
90
查看次数

用单引号(')替换双引号('')

假设我有一个字符串:

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吗?

c++ string boost replace

5
推荐指数
2
解决办法
623
查看次数

在regex cpp中使用变量

我有一个字符串:

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.

c++ regex

-2
推荐指数
1
解决办法
691
查看次数

标签 统计

c++ ×2

boost ×1

java ×1

javacc ×1

parsing ×1

regex ×1

replace ×1

string ×1

unicode ×1