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

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 Ответов
8442 Просмотров
Последний ответ Август 20, 2010, 02:30:22
от Kaster
8 Ответов
2932 Просмотров
Последний ответ Апрель 28, 2011, 19:47:10
от Ranos1982
1 Ответов
1839 Просмотров
Последний ответ Июнь 03, 2011, 13:05:53
от madmasles
6 Ответов
3216 Просмотров
Последний ответ Октябрь 21, 2011, 13:16:54
от Trans
3 Ответов
5389 Просмотров
Последний ответ Март 25, 2012, 01:22:03
от asdf8
14 Ответов
5620 Просмотров
Последний ответ Июль 03, 2012, 00:48:36
от Garrett
2 Ответов
2053 Просмотров
Последний ответ Июнь 09, 2016, 14:14:59
от Dk
4 Ответов
5461 Просмотров
Последний ответ Август 24, 2016, 13:27:30
от iltmpz
6 Ответов
2537 Просмотров
Последний ответ Январь 07, 2017, 01:06:34
от Alofa
8 Ответов
254 Просмотров
Последний ответ Август 15, 2017, 17:40:20
от Maildog