想过滤以下格式的字符串,
***+***+***+***以加号分割,中间的字符串可以是汉字,英文,数字。请问,该正则表达式怎么写。我已经试过^(\W*\w*)\+(\W*\w*)\+(\W*\w*)\+(\W*\w*)$的写法,但是在我的开发工具中,字符串中含有数字时,无法通过测试。

解决方案 »

  1.   

    \w 单词字符:[a-zA-Z_0-9] 
    [\\u4e00-\\u9fa5] 表示一个中文
    + 表示一个或多个
    * 表示零个或多个过滤***+***+***+***首先想问一下你所说的过滤***+***+***+***三个*是不是指只有三个字符
    如果是
    那么正则表达式为  [\\w[\\u4e00-\\u9fa5]]{3}\\+[\\w[\\u4e00-\\u9fa5]]{3}\\+[\\w[\\u4e00-\\u9fa5]]{3}测试:
    public class Test {
    public static void main(String [] args){
            String str="我1d+我1d+我1d";
            String reg="[\\w[\\u4e00-\\u9fa5]]{3}\\+[\\w[\\u4e00-\\u9fa5]]{3}\\+[\\w[\\u4e00-\\u9fa5]]{3}";
            System.out.println(str.matches(reg));
    }
    }运行结果:
    true非复制粘贴,望采纳。Thanks