gpt4 book ai didi

java - 只返回双引号内出现的序列?

转载 作者:行者123 更新时间:2023-12-02 17:50:50 24 4
gpt4 key购买 nike

我想编写一个方法,它仅返回字符串中出现在双引号内的字符。给定String input = "\"x\"y\"z\"",我想返回"xz"

下面的方法仅返回“x”,因为模式匹配器仅找到一个匹配项。

  static String removeCharsNotInQuotes(String text) {
StringBuilder builder = new StringBuilder();

String withinQuotesRegex = "\"(.*?)\"";

Pattern pattern = Pattern.compile(withinQuotesRegex);
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
for (int i = 1; i <= matcher.groupCount(); i++) {
builder.append(matcher.group(i));
builder.append(" ");
}
}

return builder.toString().trim();
}

最佳答案

您应该对 matcher.find() 使用 while 循环。例如:

while (matcher.find()) {
builder.append(matcher.group(1));
builder.append(" ");
}

此外,matcher.groupCount() 返回正则表达式中组的数量,因此使用它仅对多个组有意义,而您没有.

调用 group() 的整数参数表示您想要访问正则表达式中的哪个组,对您来说始终是 1,因为你只有一个组。

关于java - 只返回双引号内出现的序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48251209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com