Регулярное выражение для чисел с плавающей запятой / двойных чисел - PullRequest
0 голосов
/ 22 февраля 2019

Я пытался извлечь строку и 2 десятичных числа из предложения, но десятичная часть не сработала.

У меня есть предложение в следующем формате: AMBIENT_CAVE 0.5 1 Итакэто будет word (иногда содержит _), а затем 2 числа, которые могут быть целыми числами (1 или 0) или десятичными числами от 0 до 1.

Мое текущее регулярное выражение: (\w+) ([+-]?([0-9]*[.])?[0-9]+) ([+-]?([0-9]*[.])?[0-9]+) Какиевроде работает, но с использованием примера предложения из группы 3 выше было бы 0..

Результаты:

enter image description here

Я только хочуAMBIENT_CAVE, 0.5 и 1.
Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете попробовать это.Пожалуйста, предоставьте больше примеров доступных строк для оптимизации выражения

  (\w+)\s([\d\.]+)\s([\d\.]+)
0 голосов
/ 22 февраля 2019

Добавьте ?: к любой группе, которую вы не хотите захватывать:

(\w+) ([+-]?(?:[0-9]*[.])?[0-9]+) ([+-]?(?:[0-9]*[.])?[0-9]+)
             ^                           ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...