正则表达式中含有汉字,匹配不出正确结果,怎么办?

现在有一个正则表达式 ^([京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新军]\d{12})$ ,我用std::tr1::regex_match函数匹配“鲁123456789123”这个串返回的是false,显然是不对的,我试过不带汉字的可以,我现在要怎么弄才能匹配正确?

第1个回答  2014-01-24
var reg = /^([京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新军]\d{12})$/;

reg.test('鲁123456789123');

第2个回答  2014-01-24
^((京|津|冀|晋|蒙|辽|吉|黑|沪|苏|浙|皖|闽|赣|鲁|豫|鄂|湘|粤|桂|琼|渝|川|贵|云|藏|陕|甘|青|宁|新|军)\d{12})$
将汉字当成字符串,用或操作应该行吧,std这好像是C++,难道反斜杠不用转义,\d不用写成\\d就能识别?本回答被提问者采纳
第3个回答  2014-01-25
c的正则表达式包有些不行,不是你的问题
相似回答