Groovy 2.4在这里。我有一个我想要匹配的字符列表,具体来说:
`; []&安培;<> :()|
我最好的尝试:
import java.util.regex.Matcher;
Matcher matcher
String illNameChars = /[`\/;\[\]&<>?:\()|-]+/
String input = "Bupo;dupo"
if(input) {
matcher = input =~ illNameChars
if(matcher.matches()) {
println "Illegal character detected!"
}
}
这适用于第一个字符(反引号&#34;`&#34;)和第二个字符(&#34 ;;&#34;),但不适用于第三个字符(&#34; [& #34;)......关于为什么的任何想法?
答案 0 :(得分:3)
你是双重逃避大括号:
尝试:
import java.util.regex.Matcher;
String input = "["
Matcher matcher = input =~ /[`\/;\[\]&<>?:\()|-]+/
if(matcher.matches()) {
println "Matched!"
} else {
println "No match!"
}
注意[和]字符只有一个转义符。当我跑步时,这导致匹配。