Как я могу получить строку в скобках с помощью пользовательской функции?
бывший. строка "ГРЕЦИЯ (+30)" должна возвращать только "+30"
Как я могу получить строку в скобках с помощью пользовательской функции?
бывший. строка "ГРЕЦИЯ (+30)" должна возвращать только "+30"
Есть несколько разных способов.
Обычные строковые методы:
Dim left As Integer = str.IndexOf('(')
Dim right As Integer= str.IndexOf(')')
Dim content As String = str.Substring(left + 1, right - left - 1)
Регулярное выражение:
Dim content As String = Regex.Match(str, "\((.+?)\)").Groups[1].Value
Для общей проблемы я бы предложил использовать Regex. Однако, если вы уверены в формате входной строки (только один набор скобок, открыть скобку перед закрытием скобки), это сработает:
int startIndex = s.IndexOf('(') + 1;
string result = s.Substring(startIndex, s.LastIndexOf(')') - startIndex);
С помощью регулярных выражений.
Dim result as String = System.Text.RegularExpressions.Regex.Match("GREECE (+30)", "\((?<Result>[^\)]*)\)").Groups["Result"].Value;
Код не тестировался, но я ожидаю только проблем с компиляцией.
Вы можете посмотреть регулярные выражения или иным образом поиграть с функцией IndexOf()
В Python, используя метод строкового индекса и нарезку:
>>> s = "GREECE(+30)"
>>> s[s.index('(')+1:s.index(')')]
'+30'