Извлечь число после регулярного выражения $ sign - PullRequest
1 голос
/ 27 июня 2019

У меня есть функция excel, которая извлекает числа из ячеек, но я хочу изменить шаблон для извлечения числа после знака $.

Число может варьироваться от 1 до 100000. Он также может иметь десятичные точки (например, 1.1000). Числа никогда не будут отрицательными. Номер всегда будет следовать за знаком $.

Ex. Text text $50.35

Мне нужно получить 50.35.

Мне нужна помощь в написании части .pattern. Я пытался и продолжаю терпеть неудачу.

Очень ценю вашу помощь.

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

Вы можете сопоставить знак доллара и зафиксировать число в группе.

\$([1-9][0-9]{0,4}(?:\.\d+)?|100000(?:\.0+)?)(?!\S)

Пояснение

  • \$ Соответствующий знак доллара
  • ( Группа захвата
    • [1-9][0-9]{0,4} Совпадение от 1 до 99999
    • (?:\.\d+)? При желании сопоставить точку и 1+ цифры
    • | Или
    • 100000(?:\.0+)? Совпадение 100000 и, необязательно, точку и 1+ умножить на 0
  • ) Закрыть группу захвата 1
  • (?!\S) Утверждать, что справа не символ без пробела

Regex demo

0 голосов
/ 27 июня 2019

Я предполагаю, что, возможно, это выражение или слегка измененная версия этого могут работать здесь:

\$(10{5})$|\$([1-9]\d{1,4}(\.\d+)?)$|\$([1-9](\.\d+)?)$

В этом демо выражение объясняется, если вас может заинтересовать,

Мои предположения:

  • Мы хотели передать $100000 и потерпеть неудачу $100000.0.

  • Строки заканчивались бы нашими желаемыми числами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...