Я хочу разбить строку, используя выражение регулярного выражения, но мне не удалось найти правильное выражение, это ниже используемого кода, а также ожидаемый результат, который вы можете запустить в https://www.jdoodle.com/online-java-compiler/
и заменить может регулярное выражение на правильное, спасибо заранее.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MyClass {
public static void main(String args[]) {
String[] result = RegexServiceBusiness("19922 test ibaraki, hamari-shi, hamari 3456789");
System.out.println("street : " + result [0] + " and the city is : "+ result [1] + " and the full city is : "+ result [2]);
}
public static String[] RegexServiceBusiness(String input) {
String street = null;
String city = null;
String fullCity = null;
String[] result = new String[3];
String regex = "(.*)(\\w+-shi)";// this regex expression should match the string giving.
Matcher matcher;
Pattern pattern = Pattern.compile(regex);
matcher = pattern.matcher(service);
if (matcher.matches()) {
street = matcher.group(0);
city = matcher.group(1);
fullCity = matcher.group(2);
}
result[0] = street;//19922 test ibaraki
result[1] = city;//, hamari-shi
result[2] = fullCity;//, hamari-shi, hamari 3456789
return result;
}
}
другой пример и вывод: "19922 test hatachi karashi-shi hamari 3456789"
ожидаемый результат улица : 19922 тест хатачи город : караси-ши полный город : караси-ши хамари 3456789