一个正则表达式的问题: 怎样用正则表示:一个汉字或一个单词

我知道汉字是:[u4e00-u9fa5]
单词是:\b\w+\b
但[u4e00-u9fa5] | (\b\w+\b) 不正确,是这样吗?
我知道原因了,这个表达式是错的,正确的是:[u4e00-u9fa5]|(\b\w+\b),没有空格。

[u4e00-u9fa5]不匹配汉字
[\u4e00-\u9fa5]这个匹配汉字

\w 不同的语言含义不同,通用的解释是表示单词字符。
javascript 只能包含英文数字和下划线
而在C#中还包含汉字,韩文等
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-12
如果是GB码,可能是双字节GBK[0x81-0xfe][0x40-0xfe],也可能是四字节GB18030[0x81-0xfe][0x30-0x39][0x81-0xfe][0x30-0x39]。
汉字在Unicode中称作CJK 统一表意符号 (CJK Unified Ideographs),包括
reg=/^([\u+3400-\u+4dbf\u4e00-\u9fff\u+20000-\u3fffd\ue000-f8ff]{2,7})$/; //只能是中文,长度为2-7字
最后一项为PUA,参见百度百科【统一码】。
第2个回答  2012-09-21
没错,正则表达式里不能随便加空格的。如果加的话需要给正则加参数extended,这个参数在不同的语言里有不同的写法
第3个回答  2012-09-21
貌似你补充的也是错的数字可以输入,字符也可以输入
第4个回答  2020-12-18

相似回答