Home >Backend Development >Python Tutorial >How Can I Efficiently Extract Numbers from Strings in Python?
Extracting Numbers from Strings in Python
When extracting numbers from strings in Python, two primary approaches can be employed: regular expressions and the isdigit() method. The choice depends on the specific requirements of the task.
Regular Expressions
Regular expressions offer a versatile and powerful solution for extracting numbers. Using the re.findall() function, numbers can be identified within a string by specifying a pattern. For instance, r'd ' matches any sequence of one or more digits.
import re line = "hello 12 hi 89" numbers = re.findall(r'\d+', line) print(numbers) # [12, 89]
To match numbers delimited by word boundaries, such as spaces or punctuation, use b:
numbers_delim = re.findall(r'\b\d+\b', line) print(numbers_delim) # [12, 89]
isdigit() Method
The isdigit() method returns True if all characters in a string are digits. It can be used in conjunction with string slicing and comprehension to extract numbers from a string.
line = "hello 12 hi 89" numbers = [] for chr in line: if chr.isdigit(): numbers.append(chr) print(numbers) # ['1', '2', '8', '9']
To convert the extracted digits to integers:
numbers = [int(chr) for chr in numbers] print(numbers) # [1, 2, 8, 9]
Conclusion
While both regular expressions and the isdigit() method can be used for extracting numbers from strings, regular expressions provide greater flexibility and control over the matching process. However, for simple extraction tasks, the isdigit() method can be more straightforward.
The above is the detailed content of How Can I Efficiently Extract Numbers from Strings in Python?. For more information, please follow other related articles on the PHP Chinese website!