当前位置: 首页 > 知识库问答 >
问题:

Java使用regex[closed]获取字符串最后一个方括号之间的文本

双志强
2023-03-14

我需要提取字符串最后括号之间的文本。这是看起来的样子:

String text= "[text1][text2][text3][text4]";

我需要

String result = "text4"

我试过正则表达式,但我不能使它工作。我将非常感谢一些关于获得正则表达式和子字符串的帮助。非常感谢

共有2个答案

赏星河
2023-03-14

使用正则表达式.+(\[.+\])$并捕获组(1)。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String text = "[text1][text2][text3][text4]";
        Matcher matcher = Pattern.compile(".+(\\[.+\\])$").matcher(text);
        if (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}

输出:

[text4]

regex101中的regex说明:

宰父淳
2023-03-14

你不需要正则表达式。您可以使用LastIndexOf

String text= "[text1][text2][text3][text4]";
System.out.println(text.substring(text.lastIndexOf("[")+1, text.lastIndexOf("]")));
 类似资料:
  • 在Javascript中,我希望得到一个字符串,表示两个括号之间的所有文本,即使该字符串包含更多的括号。 其工作如下: "(a)(b)(c)"。匹配(某物); [“a”、“b”、“c”] 或者 “a” “((a)(b)(c))”。匹配(某物); (a)(b)(c)

  • 我想在像这样的文本中插入()并将它们放入数组中,但里面可能有一些嵌套的括号。 文本: 应该这样处理: 我怎么能这么做?

  • 如何使用JavaScript中的正则表达式从下面句子中两个圆括号之间检索单词? “这是(我的)简单文本”

  • 问题内容: 我只需要返回字符串中方括号内包含的文本。我有以下正则表达式,但这也会返回方括号: 字符串只能包含一组方括号,例如: 我希望匹配项包含“一些重要信息”,而不是当前包含的“ [一些重要信息]”。 问题答案: 使用分组。我添加了一个使之匹配的“ ungreedy”,因为这可能就是您想要的。

  • 这与:正则表达式:在引号之间抓取值有关。 如果有这样的字符串: 链接上给出的正则表达式 他给了我 什么正则表达式将返回包含在引号中的值(特别是在标记之间)? 使用Java,way。

  • 假设一个字符串的格式如下: 我想提取: 什么正则表达式可以用于这样的提取? 我被这个困住了: