记得用到 \ 的地方,要两个\\,因为java编译时把\\ 变成 \.
如要查找 *,因为 * 是特殊字符,在PHP,Perl等中用 "\*",在java regex 中要用"\\*".
如何匹配 ( \ )
如果直接从文件读出匹配模式变量,
比如文件:regEx.txt
文件内容:\\
请问如何直接用字符串,如下面的红色代码:在执行的时候出现如下Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected in
ternal error near index 1
\
^
at java.util.regex.Pattern.error(Pattern.java:1489)
at java.util.regex.Pattern.compile(Pattern.java:1281)
at java.util.regex.Pattern.<init>;(Pattern.java:1030)
at java.util.regex.Pattern.compile(Pattern.java:800)
at test.main(test.java:24)
//------读该网页的全文,
thisURL="http://localhost/houqing/test.asp";
ReadURLfile myURLfile =new ReadURLfile();
Webtext=myURLfile.getURL(thisURL);
System.out.println(Webtext);
//------结束-------------,
//------读该网页的全文,
thisURL="http://localhost/houqing/regEx.asp";
myURLfile =new ReadURLfile();
regEx=myURLfile.getURL(thisURL);
System.out.println(regEx);
//------结束-------------,
Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);
//Pattern p=Pattern.compile("\\",Pattern.CASE_INSENSITIVE);
Matcher m=p.matcher(Webtext);//理解成创建匹配器
StringBuffer sb = new StringBuffer();
m = p.matcher(Webtext);
result = m.find();
int i=0;
while(result) {
i++;
for(int j=1;j<=m.groupCount();j++){
System.out.println("匹配结果"+i+"网址"+m.group(j));
}
//继续查找下一个匹配对象
result = m.find();
}
如要查找 *,因为 * 是特殊字符,在PHP,Perl等中用 "\*",在java regex 中要用"\\*".
如何匹配 ( \ )
如果直接从文件读出匹配模式变量,
比如文件:regEx.txt
文件内容:\\
请问如何直接用字符串,如下面的红色代码:在执行的时候出现如下Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected in
ternal error near index 1
\
^
at java.util.regex.Pattern.error(Pattern.java:1489)
at java.util.regex.Pattern.compile(Pattern.java:1281)
at java.util.regex.Pattern.<init>;(Pattern.java:1030)
at java.util.regex.Pattern.compile(Pattern.java:800)
at test.main(test.java:24)
//------读该网页的全文,
thisURL="http://localhost/houqing/test.asp";
ReadURLfile myURLfile =new ReadURLfile();
Webtext=myURLfile.getURL(thisURL);
System.out.println(Webtext);
//------结束-------------,
//------读该网页的全文,
thisURL="http://localhost/houqing/regEx.asp";
myURLfile =new ReadURLfile();
regEx=myURLfile.getURL(thisURL);
System.out.println(regEx);
//------结束-------------,
Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);
//Pattern p=Pattern.compile("\\",Pattern.CASE_INSENSITIVE);
Matcher m=p.matcher(Webtext);//理解成创建匹配器
StringBuffer sb = new StringBuffer();
m = p.matcher(Webtext);
result = m.find();
int i=0;
while(result) {
i++;
for(int j=1;j<=m.groupCount();j++){
System.out.println("匹配结果"+i+"网址"+m.group(j));
}
//继续查找下一个匹配对象
result = m.find();
}