相关疑难解决方法(0)

如何在两个字符之间获取字符串?

我有一个字符串,

String s = "test string (67)";
Run Code Online (Sandbox Code Playgroud)

我想得到no 67,这是(和)之间的字符串.

谁能告诉我怎么做?

java string

70
推荐指数
12
解决办法
19万
查看次数

Java Regex 提取两个字符串之间的字符串

问题

我有一个这样的模式“提名?奥斯卡”或“提名 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 regex string android illegalstateexception

4
推荐指数
1
解决办法
6835
查看次数

标签 统计

java ×2

string ×2

android ×1

illegalstateexception ×1

regex ×1