匹配任意字符(包括中英文及中英文标点)的正则表达式

本文介绍了一个正则表达式,用于匹配任意中英文字符和标点。内容涉及单词字符和非单词字符的定义,以及中文字符、双字节字符的匹配规则,并提供了相关测试用例和在线正则表达式工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

匹配任意字符(包括中英文及任意标点)的正则表达式


Regex : \\w*|\\W*|[\\u4e00-\\u9fa5]这个表达式匹配一个任意中英文字符.

  • 其中: \w : A word character: [a-zA-Z_0-9](匹配一个单词字符);
  • 其中: \W : A non-word character: [^\w](匹配一个非单词字符);
  • 其中: [\\u4e00-\\u9fa5] : 匹配一个中文字符;

Ref:http://saltdstar.iteye.com/blog/1041690
Ref:http://www.jb51.net/article/19713.htm
Ref:http://www.jb51.net/article/64301.htm


测试用例:

package cn.mike.march;

public class MatchesAllCharactersIncludeChinese {

    public static void main(String[] args) {

        String singleWordRegex = "\\w*|\\W*|[\\u4e00-\\u9fa5]";
        String chineseCharacter = "犇";
        System.out.println("1_: " + chineseCharacter.matches(singleWordRegex));

        String multipleWordsRegex = "(\\w*|\\W*|[\\u4e00-\\u9fa5]*)*";
        String exampleCharacters = "我的天as牛牪犇df134牛牪犇wsdf64?><?>|_!@@!:;…#$%%^&*(啊.。?";
        System.out.println("2_: " + exampleCharacters.matches(multipleWordsRegex));

        String regex = "^[A-Z]{1}(\\w*|\\W*|[\\u4e00-\\u9fa5]*)*[。]{1}$";
        String exampleChars3 = "B我的天asdf13464?><?>|_!@@#$%%^&*(啊。";
        System.out.println("3_: " + exampleChars3.matches(regex));
    }
}
/** Output:
    1_: true
    2_: true
    3_: true
*/

附录:

  • 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
  • 匹配双字节字符(包括汉字在内):[^\x00-\xff]
  • 在文本文件里, 这个表达式可以匹配所有的英文 : /[ -~]/
  • 这个表达式可以匹配所有的非英文(比如中文) : /[^ -~]/
    注意:表达式中间有一个空格;

正则表达式工具:


by Mike Sun @ 20170330

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值