Автор Тема: [RegExp] Выделить целую и дробную часть числа  (Прочитано 1203 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн F9 [?]

  • Новичок
  • *
  • Сообщений: 69
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый день!

Прошу помощи с регулярными выражениями:
Как из числа получить StringRegExpReplace его целую и дробную часть ?


Русское сообщество AutoIt

[RegExp] Выделить целую и дробную часть числа
« Отправлен: Март 14, 2017, 08:44:16 »

Оффлайн F9 [?]

  • Новичок
  • *
  • Сообщений: 69

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
получение целой части у меня почти вышло:
Код: AutoIt [Выделить]
StringRegExpReplace($sString, '(\.\d*)','')

Но извлекает только при условии что разделитель - точка. А как своместить два условия проверки, чтобы сочеталось как точка в качестве разделителя дробной части, так и запятая?

UPD
Условие проверки на точку и запятую в итоге вышло так:
Код: AutoIt [Выделить]
StringRegExpReplace($sString, '(\.\d*)|(\,\d*)','')


Как получить только дробную часть?

UPD
Если долго мучиться - то обязательно получится:


Итого:
целая часть:
Код: AutoIt [Выделить]
StringRegExpReplace($sString, '(\.\d*)|(\,\d*)','')

Дробная часть:
Код: AutoIt [Выделить]
StringRegExpReplace($sString, "(\d*\.)|(\d*\,)",'')

« Последнее редактирование: Март 14, 2017, 10:34:13 от F9 »

Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 173
  • Репутация: 12
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Можно и подсократить проверку
Код: AutoIt [Выделить]
StringRegExpReplace($sString, '(\.|,)\d*','')
StringRegExpReplace($sString, '\d*(\.|,)','')

Или использовать символьные классы. Запятую экранировать не нужно.

Можно за один шаг получить результат, не дёргая регэкспы, как-то так
Код: AutoIt [Выделить]
$aArray = StringSplit($sString, '.,', 2)
If Not @error Then
    MsgBox(4096, 'Test', 'Целая часть = ' & $aArray[0] & @CRLF & 'Дробная часть = ' & $aArray[1])
EndIf


Русское сообщество AutoIt

Re: [RegExp] Выделить целую и дробную часть числа
« Ответ #2 Отправлен: Март 16, 2017, 01:14:10 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
16 Ответов
8364 Просмотров
Последний ответ Август 20, 2010, 02:30:22
от Kaster
6 Ответов
3175 Просмотров
Последний ответ Октябрь 21, 2011, 13:16:54
от Trans
3 Ответов
5253 Просмотров
Последний ответ Март 25, 2012, 01:22:03
от asdf8
14 Ответов
5441 Просмотров
Последний ответ Июль 03, 2012, 00:48:36
от Garrett
6 Ответов
1543 Просмотров
Последний ответ Июнь 23, 2014, 20:04:03
от alex33
2 Ответов
2025 Просмотров
Последний ответ Июнь 09, 2016, 14:14:59
от Dk
0 Ответов
551 Просмотров
Последний ответ Август 12, 2016, 09:23:51
от Anna
4 Ответов
5371 Просмотров
Последний ответ Август 24, 2016, 13:27:30
от iltmpz
6 Ответов
2289 Просмотров
Последний ответ Январь 07, 2017, 01:06:34
от Alofa
0 Ответов
191 Просмотров
Последний ответ Январь 23, 2017, 17:24:03
от inververs