2009-07-04 7 views
0

Как я могу получить строку в круглой скобке с помощью настраиваемой функции?Функция подстроки строки

e.x. строка «ГРЕЦИЯ (+30)» должна возвращать только «+30»

+2

Я бы сказал, что регулярные выражения способны делать это. – luiscubal

ответ

5

Есть несколько способов.

Простые методы струнные:

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 
3

Для общей проблемы я бы предложил использовать Regex. Однако, если вы уверены в формате строка ввода (только один набор скобок, открытая скобки перед близкими Paren), это будет работать:

int startIndex = s.IndexOf('(') + 1; 
string result = s.Substring(startIndex, s.LastIndexOf(')') - startIndex); 
0

Вы можете посмотреть регулярные выражения, или иначе играть с IndexOf() Функция

1

С regular expressions.

Dim result as String = System.Text.RegularExpressions.Regex.Match("GREECE (+30)", "\((?<Result>[^\)]*)\)").Groups["Result"].Value; 

Код не проверен, но я ожидаю только проблем с компиляцией.

0

В Python, используя индексный метод струны и нарезку:

>>> s = "GREECE(+30)" 
>>> s[s.index('(')+1:s.index(')')] 
'+30'