如何使用Java匹配括号内的内容

问题描述 投票:0回答:1

以下是我的代码,基于jdk17。我想匹配括号里的内容。我使用在线平台匹配没有问题,但使用Java代码匹配不了。

package com.example.ticket_query;

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

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

/**
 * "station_train_code": "D29(天津西-齐齐哈尔南)", \(.*-.*\)
 */
class TicketQueryApplicationTest {

    Pattern pattern = Pattern.compile(".*station_train_code.*");
    Pattern stationNamePattern = Pattern.compile("\\(.*-.*\\)");

    @DisplayName(value = "获取所有的车站名称")
    @Test
    void getStationName() {

        String s = "11(adfa-2342)df";
        Matcher stationNames = stationNamePattern.matcher(s);
        if (stationNames.matches()) {
            System.out.println(s);
        }
    }
}

困扰我很久了。请各位专家帮帮我。

java pattern-matching
1个回答
0
投票

您错误地使用了

java.util.regex
API。

Pattern stationNamePattern = Pattern.compile("\\((.*-.*)\\)");
String s = "11(adfa-2342)df";
Matcher stationNames = stationNamePattern.matcher(s);
if (stationNames.find()) {
    System.out.println(stationNames.group(1));
}
© www.soinside.com 2019 - 2024. All rights reserved.