Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / regex. double в decimal / 5 сообщений из 5, страница 1 из 1
26.08.2015, 18:41
    #39036804
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regex. double в decimal
Привет.

Можно ли такое сделать с помощью регэкспов?

Имеется строки формата double: "23.23"
их нужно преобразовать в строки формата decimal: "23.23m"

Можно ли так ?
...
Рейтинг: 0 / 0
26.08.2015, 18:46
    #39036810
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regex. double в decimal
Мне кааажется, что должно быть что то очень отдаленно похожее на это:

string pattern = @"((\d+)\.(\d+))";
string replacement = "$1";

как я понимаю, тут как раз нужно играться с группами как-то, но не очень понимаю как.
...
Рейтинг: 0 / 0
26.08.2015, 18:50
    #39036813
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regex. double в decimal
ProBiotek, 1 + 2 ?
...
Рейтинг: 0 / 0
26.08.2015, 19:09
    #39036824
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regex. double в decimal
кажется оно.
делаю.
спасибо
...
Рейтинг: 0 / 0
26.08.2015, 19:45
    #39036845
ProBiotek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regex. double в decimal
так работает:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
        private const string PatternForReplace = @"((\d+)[.,](\d+))";
        private Regex rgx = new Regex(PatternForReplace, RegexOptions.Compiled);
        private static CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture("en-EN");
        private static NumberStyles numberStyles = NumberStyles.AllowDecimalPoint;

        private static string CapText(Match m)
        {
            var matchString = m.ToString().Replace(",",".");

            double dummy;
            if (double.TryParse(matchString, numberStyles, cultureInfo, out dummy))
                return matchString + "m";
            else
                return matchString;
        }



хотя лучше, как либо, бы обойтись без
Код: c#
1.
var matchString = m.ToString().Replace(",",".");
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / regex. double в decimal / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]