У меня есть следующая строка,
typeName="ABC:xxxxx;";
Мне нужно взять слово ABC
,
Я написал следующий фрагмент кода,
Pattern pattern4=Pattern.compile("(.*):");
matcher=pattern4.matcher(typeName);
String nameStr="";
if(matcher.find())
{
nameStr=matcher.group(1);
}
Итак, если я помещаю group(0)
, я получаю ABC:
, но если я помещаю group(1)
, это ABC
, поэтому я хочу знать
-
Что означают эти
0
и1
? Будет лучше, если кто-нибудь сможет объяснить мне хорошие примеры. -
Шаблон регулярного выражения содержит
:
в нем, поэтому почему результатgroup(1)
опускает это? Выделяет ли группа 1 все слова внутри скобки? -
Итак, если я поставлю еще две круглые скобки, такие как
\\s*(\d*)(.*)
: тогда будут ли две группы?group(1)
вернет часть(\d*)
иgroup(2)
вернет часть(.*)
?
Фрагмент кода был приведен в целях устранения моих недоразумений. Это не тот код, с которым я имею дело. Приведенный выше код можно сделать с помощью String.split()
гораздо проще.