java正则断言使用需添加最大值
2014-03-14 14:36
323 查看
(?<=ROWS 参数所用的值.+?\n).+(?=表 DT_\w+:)
以上这条正则在RegEx Tester 工具里面测试是正确的.
String regexStr= "(?<=ROWS 参数所用的值.+?\\n).+(?=表 DT_\\w+:)";
放到java里面执行时则会出现异常:
Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 19
(?<=ROWS 参数所用的值.+?\n).+(?=表 DT_\w+:)
^
现将语句修改为 String regexStr= "(?<=ROWS 参数所用的值.{1,65536}?\\n).+(?=表 DT_\\w+:)";
当然那个65536没事没改那么大就是了,这个该大了效率变低了.
以上这条正则在RegEx Tester 工具里面测试是正确的.
String regexStr= "(?<=ROWS 参数所用的值.+?\\n).+(?=表 DT_\\w+:)";
放到java里面执行时则会出现异常:
Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 19
(?<=ROWS 参数所用的值.+?\n).+(?=表 DT_\w+:)
^
现将语句修改为 String regexStr= "(?<=ROWS 参数所用的值.{1,65536}?\\n).+(?=表 DT_\\w+:)";
当然那个65536没事没改那么大就是了,这个该大了效率变低了.