如何编写正则表达式匹配CJK字符集的所有字符及数字(0-9),排除特殊字符?
正则表达式:匹配CJK字符与数字0-9,过滤特殊字符
嘿,这就给你一个精准的正则方案,刚好满足你匹配中文、日文、韩文(CJK)字符和数字0-9,同时排除各类特殊字符的需求:
推荐正则(支持Unicode属性转义的环境,比如Python、Java、现代JavaScript)
^[\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}0-9]+$
各部分解释
^和$:锚定整个字符串,确保从开头到结尾的所有字符都符合规则,避免出现"部分符合"的情况\p{Han}:匹配所有中文字符(涵盖简体、繁体,甚至一些生僻字)\p{Katakana}:匹配日文片假名\p{Hiragana}:匹配日文平假名\p{Hangul}:匹配韩文的谚文字符0-9:匹配阿拉伯数字0到9+:要求至少有一个符合条件的字符,如果需要允许空字符串,可以把+换成*
兼容旧环境的替代方案(不支持Unicode属性转义时)
如果你的开发环境不支持\p{}这类Unicode属性(比如旧版JavaScript),可以用具体的Unicode范围来替代:
^[\u4E00-\u9FFF\u3040-\u309F\u30A0-\u30FF\uAC00-\uD7AF0-9]+$
对应的范围解释:
\u4E00-\u9FFF:中文字符的核心Unicode区间\u3040-\u309F:日文平假名\u30A0-\u30FF:日文片假名\uAC00-\uD7AF:韩文谚文字符
测试示例
- ✅ 匹配的内容:
"你好123"、"こんにちは456"、"안녕하세요789"、"12345" - ❌ 不匹配的内容:
"Hello!"、"你好@#"、"こんにちは?"、"안녕하세요^&*"
内容的提问来源于stack exchange,提问作者Shivam
相关产品推荐
相关产品推荐

