以下是我的代码,基于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.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));
}