我尝试了以下Scanner
看了说明发现Scanner好像只能读取用分隔符分隔的信息。
我想读取Html文件中由<a href="URL">XXXXXXXXX</a>中的XXXX,该如何实现?只要用到正则表达式,实现方法不限。
看了说明发现Scanner好像只能读取用分隔符分隔的信息。
我想读取Html文件中由<a href="URL">XXXXXXXXX</a>中的XXXX,该如何实现?只要用到正则表达式,实现方法不限。
import java.util.regex.Matcher;
import java.util.regex.Pattern;import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.MatchResult;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.PatternMatcherInput;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
import org.apache.oro.text.regex.Util;public class RegularExpressions {
public static void main(String[] args) throws MalformedPatternException {
String str = "<a href=\"http://localhost:8091/abc\">i love you</a>";
String tag = "<a href=\"(.*)\">([^</a>]*)</a>";
PatternCompiler compiler = new Perl5Compiler();
org.apache.oro.text.regex.Pattern patternTag = compiler.compile(tag,
Perl5Compiler.CASE_INSENSITIVE_MASK);
PatternMatcher matcher = new Perl5Matcher();
if (matcher.contains(str, patternTag)) {
MatchResult result = matcher.getMatch();
String url = result.group(1);
String content = result.group(2);
System.out.println(url);
System.out.println(content);
}
http://localhost:8091/abc
i love you
>省局政务
</A>
这样形式的标签能否读取?
正则表达式如何写?
groupStr = groupStr.replaceAll("(?s)<(A).*>(.*)?<\\/\\1>", "$2");
System.out.println(groupStr);
能解释一下<(A).*>(.*)?<\\/\\1>前面的(?s)什么意思么?
上面的话可能是打错了,8好意思。其实这两个是一样的,可以得到大的,就可以从长的串,就可以从长串中获得短串。