In this Python tutorial, we will understand how to find first number in string in Python. Moreover, we will try to illustrate this task using multiple methods and examples.
We can find first number in string in Python using the following 2 ways.
- Using re.search()
- Using isdigit() & enumerate()
So, next, let us discuss each method using examples in Python.
Method 1: Find first number in string in Python using re.search()
The re module in Python allows using the regular expression functionality to find any particular pattern. And there are multiple methods in re module for searching or finding matching patterns.
Once such method is re.search() in Python.
The re.search() method analyzes a given string and returns the first matching pattern. Additionally, it returns the result as a match object. However, if no pattern matches, it returns None.
So, we can use the re.search() method to find the find number or digit occurring in the string. But, there are 2 ways by which we can specify the pattern to find digits.
Let us look at both the examples
Example-1
In this example, we used the re.search() to search the first number occurring in the sample_text string.
# Importing the re module
import re
# Defining a string with numbers
sample_text = 'California21Texas34Alaska76'
# Finding first number
match = re.search(r'\d+', sample_text)
if match:
# Printing number and its index
print('The first number is:', match.group())
print('Index of first number is:', match.start())
else:
print('The given string does not have any number')
Here we used \d+ to specify the pattern where it will search for the first occurrence of digits. Also, to get the result, we used the group() method, and to get the index, we used the start() method.
The execution of the above Python program is given below.
Example-2
Another way to define the first matching pattern for digits is by using the [0-9] string in the re.search() method. Here is an example.
# Importing the re module
import re
# Defining a string with numbers
sample_text = 'Texas98California13Alaska76'
# Finding first number
match = re.search(r'[0-9]+', sample_text)
if match:
# Printing number and its index
print('The first number is:', match.group())
print('Index of first number is:', match.start())
else:
print('The given string does not have any number')
Once we execute the above Python program, we will get the following result.
So, in this section, we have seen how to find first number in string in Python using the re.search() method.
Read: Python program to reverse a string
Method 2: Find first number in string in Python using isdigit() & enumerate()
In this section, we will learn how to find first number in string in Python using isdigit() and enumerate() functions.
The enumerate() function in Python takes a collection and returns enumerate objects. This allows for not only the value but also its index. While isdigit() is used to check if the character in a given string is numeric or not.
Let us see an example where we will use both things together.
# Defining a string with numbers
sample_text = 'Texas98California13Alaska76'
# Iterating over each charcher in the string
for index, char in enumerate(sample_text):
# Checking if char is numeric
if char.isdigit():
# Printing number and its position
print('The first number is:', char)
print('Index of first number is:', index)
break
- In the above example, first, we defined a string that contains alphabets and numbers.
- Then we used the enumerate() function to iterate over each character given in the string and also gets their index.
- Next, we utilized the isdigit() method on each character to check if the character is a number or not.
- In the end, we will return the first single numeric value and its index.
Here is the final result of the above Python program.
Note: Please note that this method will return only single number and its index. For better result, we recommend you to use the first method.
Read: Python string formatting
Conclusion
So, in this Python tutorial, we understood how to get or find first number in string in Python. Here we discussed the following 2 methods to find first number from Python String.
- Using re.search()
- Using isdigit() & enumerate()
You may also like to read the following Python tutorials.
I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.