我正试图制定一条规则来捕捉无效的特征。这些是& < > / *'“ -
我已经设法“捕获”除了/ *
之外的所有符号我的代码是:
rule "Invalid Chars"
when
c : Class ( field matches ".*[&<>'\"].*|.*(--).*" )
then
// DO SOMETHING
end
我的正则表达式如下。但是当我尝试添加/ *符号时。我得到这个正则表达式
.*[&<>'\"].*|.*(--).*|.*(\/\*).*
但是当我尝试跑步时,我得到了这个错误:
第1:28行没有可行的替代字符'*' 第1:33行不匹配的字符''期待''' java.lang.IllegalStateException:### errors ### [错误:非法转义序列:*]〜
如何“捕获”所有这些无效字符?
答案 0 :(得分:0)
这是使用*转义的最小测试但是/不是:
public static void main(String[] args) {
if("Hallo /* Test ".matches(".*[&<>'\"].*|.*(--).*|.*(/\\*).*")) {
System.out.println("ILLEGAL");
}
}
答案 1 :(得分:0)
试试这个:
String pattern = "[&|<|>|'|\"|]|(--)|(\\/\\*)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher("YOUR STRING TO FIND MATCHES");
while (m.find( )) {
System.out.println("Matched value: " + m.group(0) );
}