Regexp
От: cybrex Россия  
Дата: 11.07.05 10:50
Оценка:
Я раньше регулярными выражениями не пользовался,а вот сейча ну очень понадобилось. Из строки вырезать или заменить число которое в конце строки в скобках. Написал следующее.
String str = "123a21(3)";
bool f = Regex.IsMatch(str,"^.*[(]*[)]$");
str = Regex.Replace(str,"^.*[(]*[)]$","$1");


IsMatch возвращает true значит есть число, но последняя строка его не получает.
Подскажите пожалуста, что не так.
Re: Regexp
От: BJk  
Дата: 11.07.05 11:43
Оценка:
Здравствуйте, cybrex, Вы писали:

C>String str = "123a21(3)";

C>bool f = Regex.IsMatch(str,"^.*[(]*[)]$");
C>IsMatch возвращает true значит есть число, но последняя строка его не получает.
Нет, в у вас не определена область выделения — то что должно находиться в скобочках.

C>Подскажите пожалуста, что не так.

^.*\(((\+|-)?[0-9][0-9]*(\.|\,)?[0-9]*)\)$
Вот так более верно. Покрайней мере на приведенном вами примере работает.
Также учтена возможность появления положительных и отрицательных значений, также обрабатываются числа с запятой(|точкой)
Re[2]: Regexp
От: cybrex Россия  
Дата: 11.07.05 12:10
Оценка:
Здравствуйте, BJk, Вы писали:

BJk>Здравствуйте, cybrex, Вы писали:


C>>Подскажите пожалуста, что не так.

BJk>^.*\(((\+|-)?[0-9][0-9]*(\.|\,)?[0-9]*)\)$
BJk>Вот так более верно. Покрайней мере на приведенном вами примере работает.
BJk>Также учтена возможность появления положительных и отрицательных значений, также обрабатываются числа с запятой(|точкой)

Тоесть надо поместить строку сюда
Regex.Replace(str,@"^.*\(((\+|-)?[0-9][0-9]*(\.|\,)?[0-9]*)\)$","$1")

в результате исходная строка Может я опять чтото напутал.

А насчёт чисел там только целые положительные.
Re[3]: Regexp
От: BJk  
Дата: 11.07.05 14:12
Оценка: 2 (1)
Здравствуйте, cybrex, Вы писали:

C>Тоесть надо поместить строку сюда

C>Regex.Replace(str,@"^.*\(((\+|-)?[0-9][0-9]*(\.|\,)?[0-9]*)\)$","$1")
C>А насчёт чисел там только целые положительные.

А, вполне, тогда все проще:
String str = "123a21(3)";
Regex r = new Regex(@"\(\d+\)$");
str = r.Replace(str, "(ku)");
Re[4]: Regexp
От: cybrex Россия  
Дата: 12.07.05 09:17
Оценка:
Здравствуйте, BJk, Вы писали:

В общем спасибо за помощь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.