You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取字符串中括号()内的内容?含多场景示例代码

嘿,这个需求太常见啦!我给你两种实用的实现方法,不管括号在字符串开头、中间还是结尾,都能稳稳提取出括号里的内容:

方法1:正则表达式(推荐,简洁高效)

正则表达式是处理这类字符串提取的利器,专门针对你的场景,我们可以用\\((.*?)\\)这个匹配规则:

  • \\( 和 \\):转义括号(因为括号在正则里是特殊字符),用来定位目标括号的位置
  • (.*?):非贪婪匹配,精准捕获括号之间的所有内容(不会多拿也不会少拿)

下面是Java代码示例,直接就能跑:

public class ExtractBracketContent {
    public static void main(String[] args) {
        String name_and_code1 = "MountainBlues(MB)";
        String name_and_code2 = "Rock(RoRo)Roll";
        String name_and_code3 = "(TFT)TitForTat";
        
        // 定义正则模式
        java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("\\((.*?)\\)");
        
        // 处理第一个字符串
        java.util.regex.Matcher matcher1 = pattern.matcher(name_and_code1);
        if (matcher1.find()) {
            String content1 = matcher1.group(1); // 提取括号内的内容
            System.out.println("提取结果1: " + content1); // 输出 MB
        }
        
        // 处理第二个字符串
        java.util.regex.Matcher matcher2 = pattern.matcher(name_and_code2);
        if (matcher2.find()) {
            String content2 = matcher2.group(1);
            System.out.println("提取结果2: " + content2); // 输出 RoRo
        }
        
        // 处理第三个字符串
        java.util.regex.Matcher matcher3 = pattern.matcher(name_and_code3);
        if (matcher3.find()) {
            String content3 = matcher3.group(1);
            System.out.println("提取结果3: " + content3); // 输出 TFT
        }
    }
}

方法2:手动查找索引(适合不想用正则的场景)

如果你对正则不太熟悉,也可以用字符串的indexOf()和substring()方法手动定位括号位置:

  1. 先用indexOf('(')找到左括号的索引
  2. 再用indexOf(')')找到右括号的索引
  3. 最后用substring()提取两者之间的内容

代码示例如下,还加了异常处理避免括号不存在的情况:

public class ExtractBracketContent {
    public static void main(String[] args) {
        String name_and_code1 = "MountainBlues(MB)";
        String name_and_code2 = "Rock(RoRo)Roll";
        String name_and_code3 = "(TFT)TitForTat";
        
        // 提取第一个字符串的内容
        String content1 = extractContent(name_and_code1);
        System.out.println("提取结果1: " + content1);
        
        // 提取第二个字符串的内容
        String content2 = extractContent(name_and_code2);
        System.out.println("提取结果2: " + content2);
        
        // 提取第三个字符串的内容
        String content3 = extractContent(name_and_code3);
        System.out.println("提取结果3: " + content3);
    }
    
    private static String extractContent(String str) {
        int startIndex = str.indexOf('(');
        int endIndex = str.indexOf(')');
        
        // 检查括号是否存在且位置合法
        if (startIndex != -1 && endIndex != -1 && endIndex > startIndex) {
            return str.substring(startIndex + 1, endIndex);
        } else {
            return "未找到有效括号内容"; // 或者返回null,根据你的需求调整
        }
    }
}

两种方法都能完美处理你给出的三个字符串,你可以根据自己的习惯选择哦~

内容的提问来源于stack exchange,提问作者Saroj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 03:42:33