Java 正则表达式匹配中间的特定字符
我正在尝试使用以下条件构建java正则表达式:Java 正则表达式匹配中间的特定字符,java,regex,Java,Regex,我正在尝试使用以下条件构建java正则表达式: 标识符不能以特殊字符开头或结尾 不允许多个特殊字符的序列 允许的特殊字符有:冒号、连字符(减号)、句号(句号)和下划线 我做了一些分析并构建了正则表达式: String regularexp=“^[A-Za-z0-9](?:,/-/.*?[^A-Za-z0-9]{2})。*?[A-Za-z0-9]$”但不知为什么它不起作用 final Pattern pattern = Pattern.compile(regex); fina
String regularexp=“^[A-Za-z0-9](?:,/-/.*?[^A-Za-z0-9]{2})。*?[A-Za-z0-9]$”代码>但不知为什么它不起作用
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
final Pattern=Pattern.compile(regex);
final Matcher Matcher=pattern.Matcher(字符串);
while(matcher.find()){
System.out.println(“完全匹配:+matcher.group(0));
对于(int i=1;i而言,如果关注非特殊字符的部分,则更容易编写。然后字符串如下所示(在EBNF表示法中):
<word> (<special-char> <word>)*
^[A-Za-z0-9]+([-:._][A-Za-z0-9]+)*$