регулярное выражение: строка содержит только числа с плавающей точкой и табуляцию - PullRequest
2 голосов
/ 01 июля 2010

что регулярное выражение строки строки, содержащей ТОЛЬКО числа с плавающей запятой, разделенные пробелами или символами табуляции.Число с плавающей запятой может быть отрицательным, например -999,999

Ответы [ 3 ]

4 голосов
/ 01 июля 2010
(?:-?(?:\d+(?:\.\d*)|.\d+)[ \t]*)+

это одна возможность.В более читаемом формате:

(?:
  -?                 # Optional negative sign
  (?:
    \d+(?:\.\d*)     # Either an integer part with optional decimal part
    |
    .\d+             # Or a decimal part that starts with a period
  )
  [ \t]*             # Followed by any number of tabs or spaces
)+                   # One or more times
2 голосов
/ 01 июля 2010

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

Число с плавающей точкой:

  • Необязательный отрицательный знак
  • с последующим количеством цифр
  • с последующим необязательным десятичным знаком и несколькими цифрами
  • с последующим "e"
  • с последующим количеством цифр (снеобязательный знак).

Сложите это вместе, и мы получим:

/-?[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?/

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

/^(F\s+)+$/

Соберите все вместе, в итоге получим:

/^(-?[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?\s+)+$/
1 голос
/ 01 июля 2010

Регулярное выражение для числа с плавающей точкой будет выглядеть так: -?\d+\.?\d+

Разделитель пробелов выглядит следующим образом: \s

Сложите их вместе, дайте ему повториться, убедитесь, чтоend имеет плавающее число (не разделитель):

((-?\d+\.?\d*)\s)*(-?\d+\.?\d*))

Экранирование и \d против [0-9] могут измениться, в зависимости от вашего вида регулярного выражения.

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