Различные регулярные выражения для сопоставления чисел и десятичных дробей с фиксированным количеством цифр после запятой

Регулярные выражения (regex) — это мощные инструменты для сопоставления с образцом и манипулирования текстом. При работе с числами и десятичными дробями часто необходимо соблюдать определенный формат, например фиксированное количество цифр после десятичной точки. В этой статье мы рассмотрим различные шаблоны регулярных выражений для достижения этой цели, а также примеры кода на различных языках программирования.

  1. Регулярное выражение с фиксированным количеством цифр:
    Давайте начнем с простого требования: сопоставление десятичного числа с ровно двумя цифрами после запятой. Вот шаблон регулярного выражения, который позволяет это сделать:
    ^\d+\.\d{2}$

    Объяснение:

    • ^соответствует началу строки.
    • \d+соответствует одной или нескольким цифрам до десятичной точки.
    • \.соответствует самой десятичной точке.
    • \d{2}соответствует ровно двум цифрам после запятой.
    • $соответствует концу строки.

Пример кода на Python:

import re
pattern = r"^\d+\.\d{2}$"
numbers = ["3.14", "42.567", "123.4", "0.99"]
for number in numbers:
    if re.match(pattern, number):
        print(f"Match: {number}")
    else:
        print(f"No match: {number}")
  1. Регулярное выражение с переменным количеством цифр.
    Если вы хотите сопоставить десятичное число с фиксированным диапазоном цифр после десятичной точки, вы можете изменить шаблон регулярного выражения, включив в него квантификатор диапазона. Например, чтобы сопоставить числа, содержащие ровно две-четыре цифры после запятой, вы можете использовать следующий шаблон:
    ^\d+\.\d{2,4}$

    Объяснение:

    • ^и $имеют то же значение, что и раньше.
    • \d{2,4}соответствует диапазону от двух до четырех цифр после десятичной точки.

Пример кода на JavaScript:

const pattern = /^\d+\.\d{2,4}$/;
const numbers = ["3.14", "42.5678", "123.456", "0.99"];
numbers.forEach(number => {
  if (pattern.test(number)) {
    console.log(`Match: ${number}`);
  } else {
    console.log(`No match: ${number}`);
  }
});
  1. Регулярное выражение с фиксированным количеством цифр до и после десятичной точки:
    Если вам нужно сопоставить числа с фиксированным количеством цифр как до, так и после десятичной точки, вы можете соответствующим образом изменить шаблон регулярного выражения.. Например, чтобы сопоставить числа, содержащие ровно три цифры до и после десятичной точки, используйте следующий шаблон:
    ^\d{3}\.\d{3}$

    Объяснение:

    • ^\d{3}соответствует ровно трем цифрам в начале строки.
    • \.соответствует десятичной точке.
    • \d{3}$соответствует ровно трем цифрам в конце строки.

Пример кода на Ruby:

pattern = /^\d{3}\.\d{3}$/
numbers = ["123.456", "987.123", "42.567", "0.99"]
numbers.each do |number|
  if pattern.match(number)
    puts "Match: #{number}"
  else
    puts "No match: #{number}"
  end
end

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