如何在两个字符串之间找到值?
我如何“找到”并“获取”两个字符串之间的值?
即: 3
我正在读取一个文件以找到的位置,从哪里开始,然后它会在找到时停止读取
我要返回的值是“3”。
使用JRE 6
您的两个主要选项是:
1) 首选但可能很复杂 :使用XML / HTML解析器并在第一个“a”元素中获取文本。 例如使用Jsoup (感谢@ alpha123):
Jsoup.parse("3").select("a").first().text(); // => "3"
2) 更容易但不太可靠 :使用正则表达式提取和
字符串之间的字符。 例如:
String s = "3"; Pattern p = Pattern.compile("(.*?)") Matcher m = p.matcher(s); if (m.find()) { System.out.println(m.group(1)); // => "3" }
Jsoup将很容易做到这一点。
String title = Jsoup.parse("3").select("a").first().text();
你可以使用正则表达式:
try { Pattern regex = Pattern.compile("(.*)"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { for (int i = 1; i <= regexMatcher.groupCount(); i++) { // matched text: regexMatcher.group(i) // match start: regexMatcher.start(i) // match end: regexMatcher.end(i) } } } catch (PatternSyntaxException ex) { // Syntax error in the regular expression }
但是,如果您的输入是HTML,您应该考虑使用HTML解析器。