java 正则 正则 ,idea idea,求指点

图片说明

求大神帮忙给个正则表达式,java的,怎么写idea都字符串报错,木有办法

首先,正则的思路应该是我支持什么样的格式。根据问题,假设是支持字母(不限大小写)、数字、以及符号-#
那么正则表达式是:[A-Za-z0-9-#]{1,64},如果要支持更多的字符,请在#后面添加即可
Java代码示例:

import java.util.regex.*;

boolean foundMatch = false;
try {
    Pattern regex = Pattern.compile("[A-Za-z0-9-#]{1,64}");
    Matcher regexMatcher = regex.matcher(subjectString);
    foundMatch = regexMatcher.find();
} catch (PatternSyntaxException ex) {
    // 异常处理


 晕,这个编辑器把第一行吃了,发布出来。
[^这个后面写你那些符号,每个前面加上一个\]{1,64}


如果所有符号都不允许,或者只允许-_,可以用
\w{1,64}
或者[a-zA-Z0-9\-_]{1,64}

你可以参考一下这段代码,你可以测试一下。应该是没有问题的。

import java.util.regex.Pattern;

public class RegularTest {
    public static void main(String[] args) {
        String username="abc_-235bv";
        String reg = "[A-Za-z0-9-#_\\-]{1,64}";
        System.out.println(Pattern.matches(reg,username));
        if (Pattern.matches(reg,username))
            System.out.println("符合规则");
        else
            System.out.println("不符合规则");
    }
}

匹配你的需求应该是没有问题的,你看看吧。

感谢各位大佬,不过符号那么多,我如果想按照需求,只是禁用那几个,但我每次拼接到"\"就会开始报字符串错误了,为什么。各位大佬有时间可以帮我拼接下吗

感谢各位,我找到原因了,是因为java的转义加上正则的转义,"\\"才是表示一个"\"