Если вам необходимо использовать регулярные выражения и вы настаиваете на том, чтобы не использовать группы захвата, вы можете использовать lookbehind в вариантах, поддерживающих их следующим образом:
(?<=#).*
Или вы можете захватить что угодно, кроме #
, до конца строки, так что-то вроде этого:
[^#]*$
Опция группы захвата, конечно, такова:
#(.*)
\__/
1
Это также соответствует #
, но группа 1 захватывает нужную вам часть.
Наконец, альтернатива без регулярных выражений может выглядеть примерно так:
secondPart = wholeString.substring( wholeString.indexOf("#") + 1 )
Могут возникнуть проблемы с некоторыми из этих решений, если #
также может появиться (возможно, экранироваться) где-либо еще в строке.
Ссылки