Изучение различных методов извлечения чисел из строки: подробное руководство

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

  1. Манипулирование строками.
    Один из самых простых методов извлечения чисел из строки — это базовые операции по манипуляции со строками. Вот пример использования Python:
def extract_numbers_string_manipulation(input_string):
    numbers = []
    current_number = ""
    for char in input_string:
        if char.isdigit():
            current_number += char
        elif current_number:
            numbers.append(int(current_number))
            current_number = ""
    if current_number:
        numbers.append(int(current_number))
    return numbers
# Usage example
input_string = "There are 123 apples and 456 bananas"
result = extract_numbers_string_manipulation(input_string)
print(result)  # Output: [123, 456]
  1. Регулярные выражения.
    Регулярные выражения предоставляют мощный набор инструментов для сопоставления и извлечения шаблонов. Мы можем использовать их для эффективного извлечения чисел из строки. Вот пример использования модуля Python re:
import re
def extract_numbers_regex(input_string):
    numbers = re.findall(r'\d+', input_string)
    return [int(num) for num in numbers]
# Usage example
input_string = "The price is $99.99 and the discount is 20%"
result = extract_numbers_regex(input_string)
print(result)  # Output: [99, 20]
  1. Алгоритмические решения.
    Для более сложных сценариев, когда числа смешиваются с другими символами, мы можем использовать алгоритмические решения для извлечения чисел. Вот пример использования Python:
def extract_numbers_algorithmic(input_string):
    numbers = []
    current_number = ""
    for char in input_string:
        if char.isdigit():
            current_number += char
        elif current_number:
            numbers.append(int(current_number))
            current_number = ""
    if current_number:
        numbers.append(int(current_number))
    return numbers
# Usage example
input_string = "The meeting is scheduled at 10:30 AM"
result = extract_numbers_algorithmic(input_string)
print(result)  # Output: [10, 30]

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