日期:2014-05-18  浏览次数:20688 次

JAVA 中关于正则表达式问题
String regex1 = "/<(\/?)(script|i?frame|style|html|body|title|object|link|meta|\?|\%)([^>]*?)>/isU";
String regex2 = "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU";

在PATTERN中定义两个正则表达式,用于过滤非法字符,为什么总是提示定义的regex1,regex2有错误?

提示:Invalid escape sequence (valid ones are \b \t \n \f \r \"" \' \\)

我知道是字符转义的问题,有谁能给改一下吗?

------解决方案--------------------
哦对
应该是
String regx1 = "^<(\\/?)(script ¦i?frame ¦style ¦html ¦body ¦title ¦object ¦link ¦meta ¦\\? ¦\\%)([^>]*?)>$";
String regx2 = "^(<[^>]*)on[a-zA-Z]+\\s*=([^>]*>)$";
------解决方案--------------------
String regx = "/<(/?)(script¦i?frame ¦style ¦html ¦body ¦title ¦object ¦link ¦meta ¦\\? ¦%)([^>]*?)>/isU";
String regex2 = "/( <[^>]*)on[a-zA-Z]+\\s*=([^>]*>)/isU"; 
不过在java代码里面不需要//这个开始和结束。