Как извлечь число (целое или двойное) и текст из строки в C # с регулярным выражением - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь создать небольшую конвертацию в C # и сталкиваюсь с проблемой.Я просмотрел несколько примеров в интернете, но я не смог применить

Example text input:
12m 
12 m
12.4m
.5m
12.m

Я хотел бы string num и string unit

new Regex(@"([\d.])([a-zA-Z- -/]+)");

Это даст мне результат, только есливход имеет int как 12m не 12.m или 12.4m...

Я мог бы обойти, чтобы включить . во входной текст, но теперь ввод должен иметь ., также происходитс десятичной частью.

new Regex(@"([\d.][.][\d.])([a-zA-Z- -/]+)");

Хотя я мог бы сделать несколько возможных случаев для обработки различных форматов ввода, код выглядит плохо.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете использовать

(\d*\.?\d+|\d+\.?\d*)\s*([a-z]+)

См. Демоверсию regex

Подробности

  • (- начало группы захвата 1:
    • \d*\.?\d+ - 0+ цифр, необязательно ., 1+ цифр
    • | - или
    • \d+\.?\d* - 1+ цифр, необязательные ., 0+ цифр
  • ) - конец группы захвата 1
  • \s* - 0+ пробелов
  • ([a-z]+) - Группа захвата 2: одна или несколько строчных букв.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...