Как я могу получить строку в круглой скобке с помощью настраиваемой функции?Функция подстроки строки
e.x. строка «ГРЕЦИЯ (+30)» должна возвращать только «+30»
Как я могу получить строку в круглой скобке с помощью настраиваемой функции?Функция подстроки строки
e.x. строка «ГРЕЦИЯ (+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
. Однако, если вы уверены в формате строка ввода (только один набор скобок, открытая скобки перед близкими Paren), это будет работать:
int startIndex = s.IndexOf('(') + 1;
string result = s.Substring(startIndex, s.LastIndexOf(')') - startIndex);
Вы можете посмотреть регулярные выражения, или иначе играть с IndexOf()
Функция
Dim result as String = System.Text.RegularExpressions.Regex.Match("GREECE (+30)", "\((?<Result>[^\)]*)\)").Groups["Result"].Value;
Код не проверен, но я ожидаю только проблем с компиляцией.
В Python, используя индексный метод струны и нарезку:
>>> s = "GREECE(+30)"
>>> s[s.index('(')+1:s.index(')')]
'+30'
Я бы сказал, что регулярные выражения способны делать это. – luiscubal