我有一个这样的模式“提名?奥斯卡”或“提名 2 座金球奖。提名?奥斯卡。30 次赢得 18 项提名” 我想确定 ? 用正则表达式,所以奥斯卡的数量。
好像有
对应这个问题:在java中提取两个字符串之间的字符串和
如何在两个字符串之间找到一个值?我试过这种模式:
final Pattern pattern = Pattern.compile("for(.*?)Oscar");
Run Code Online (Sandbox Code Playgroud)
接下来我尝试了这个问题:Java - 在两个字符串之间获取所有字符串的最佳方法?(正则表达式?)
final Pattern pattern = Pattern.compile(Pattern.quote("Nom") +"(.*?)"+ Pattern.quote("Oscar"));
Run Code Online (Sandbox Code Playgroud)
我的其余代码:
final Matcher matcher = pattern.matcher("Nom for 3 Oscar");
while(matcher.find()){
}
Log.d("Test", matcher.group(1));
Run Code Online (Sandbox Code Playgroud)
所有这些模式都会导致此异常:
java.lang.IllegalStateException:到目前为止没有成功的匹配
我想我只是监督一些非常简单的事情。
你们能帮帮我吗?
所以问题是我在循环后调用 matcher.group(1) 。我误解了 find 方法的工作原理。然而,当我在循环内调用 matcher.group(1) 时,这段代码确实有效。
final Pattern pattern = Pattern.compile("for(.*?)Oscar");
final Matcher matcher = pattern.matcher("Nom for 3 Oscar");
while(matcher.find()){
Log.d("Test", matcher.group(1));
}
Run Code Online (Sandbox Code Playgroud) 我对Java很新,但是如何在文件中搜索标签,然后标签之间的所有内容(如一串文本)都将分配给变量.
例如,我有<title>THE TITLE</title>,但后来我想将字符串"THE TITLE"保存到名为title1的变量或其他东西.
我应该怎么做呢?谢谢.