Q:用匹配串"[^\u4E00-\u9FA5]+"匹配汉字报错:unbalanced [] at offset 2
A:匹配串中\u表示unicode串,要表示unicode字符,则需要将匹配串转换成Unicode字符表达式
范例:
source:=L'yes嘿嘿no呵呵';//unicode串
RegExpr:=L"[\u4E00-\u9FA5]+";//unicode串
ParseRegExpr(RegExpr,source,'mi',result,mpos,mlen);
return result;
//返回:
还可以通过函数multibytetounicodew将多字节字符串转换成Unicode字符串,如下:
source:=multibytetounicodew('yes嘿嘿no呵呵',936);//unicode串
RegExpr:=L"[\u4E00-\u9FA5]+";//unicode串
ParseRegExpr(RegExpr,source,'mi',result,mpos,mlen);
return result;
//返回结果与上个范例结果一致
相关链接:FAQ:
MultibytetoUnicodew