Я хочу выделить строку, т.е. комбинацию имени субъекта с тематическим кодом, на две части в java. Оригинальная строка может быть НИЧЕГО, как "ABC (01dfv)", "BCD (sdfsd) и т.д.) Код темы, всегда написанный в(), и имя объекта всегда будет префикс скобки. Пример:
String originalString = "Computer Science (06cs43)"
String subjectName="Computer Science"
String subjectCode="06cs43"
Я использую string.replaceAll, но не могу найти регулярное выражение для извлечения или замены кода темы.
Размер тематического кода не фиксирован.
Здесь нет необходимости использовать регулярное выражение. Вы можете просто сделать это
String orS="Computer Science (06cs43)";
String subjectName=orS.subString(0,orS.indexOf('(')-1);
String subjectCode=orS.subString(orS.indexOf('('),orS.length()-2)
Просто попробуйте с регулярным выражением followinf:
"^([^(]+) \\(([^)]+)\\)$"
Или лучше:
String originalString = "Computer Science (06cs43)";
String[] parts = originalString.split("\\(");
String subjectName = parts[0].trim();
String subjectCode = null;
if (parts.length > 1) {
subjectCode = parts[1].replaceAll("\\)$", "");
}
"Computer Science (06cs43)"
? Или нет? Затем, пожалуйста, опишите формат имен и кодов, чтобы сделать из него подходящее регулярное выражение.