QRegularExpressionrx("(?![\\p{P}\\p{S}])[\u4e00-\u9fa5]");
《1》负预测模式
(?!模式) |
负预测先行。匹配与模式不匹配的搜索字符串。找到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。不会保存匹配项以备将来之用。 |
\b(?!th)\w+\b与不以“th”开头的单词匹配。 在该模式中,\b与一个字边界匹配。对于搜索字符串“ quick ”,这与第一个空格匹配。(?!th)与非“th”字符串匹配。这与“qu”匹配。 从该匹配项开始,\w+与一个字匹配。这与“quick”匹配。 |
http://stackoverflow.com/questions/2078915/a-regular-expression-to-exclude-a-word-string
《2》unicode属性
\p{P}
|
小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。中括号内的“P”表示Unicode 字符集七个字符属性之一:标点字符。
L:字母;
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符。
*注:此语法部分语言不支持,例:javascript。
|
《3》 中文的unicode范围
匹配中文字符的正则表达式: [u4e00-u9fa5]