Groovy与正则表达式中的左括号不匹配

时间:2016-05-10 16:30:36

标签: regex groovy

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;)......关于为什么的任何想法?

1 个答案:

答案 0 :(得分:3)

你是双重逃避大括号:

尝试:

import java.util.regex.Matcher;

String input = "["
Matcher matcher = input =~ /[`\/;\[\]&<>?:\()|-]+/
if(matcher.matches()) {
    println "Matched!"
} else {
    println "No match!"
}

注意[和]字符只有一个转义符。当我跑步时,这导致匹配。