Method # 1: Using re.compile () + re.match () + re.groups ()
Combining all of the above regex functions can be used to accomplish this specific task. In this we will compile a regular expression and match it to group text and numbers separately into a tuple.
# Python3 code to demonstrate how it works # Separating text and number in line # Using re.compile () + re.match () + re.groups ( ) import re # initialization string test_str = "Geeks4321" # print original line print ( "The original string is:" + str (test_str)) # Using re.compile () + re.match () + re.groups () # Separating text and number in line temp = re. compile ( " ([a-zA-Z] +) ([0-9] +) " ) res = temp.match (test_str) .groups () # print result print ( "The tuple after the split of string and number:" + str < code class = "plain"> (res)) |
Output:
The original string is: Geeks4321 The tuple after the split of string and number: (’Geeks’,’ 4321’)
Method # 2 : Using re.findall()
A slight modification to the regex can provide flexibility to reduce the number of regex functions needed to accomplish this particular task. Findall is sufficient for this task.
# Python3 code to demonstrate how it works # Text splitting and numbers per line # Using re.findall () import re # initializing string test_str = "Geeks4321" # print original line print ( "The original string is:" + str (test_str)) # Using re.findall () # Separating text and numbers on a line res = [re.findall (r ’(w +?) (d +)’ , test_str) [ 0 ]] # print result print ( "The tuple after the split of string and number:" + str (res)) |
Output:
The original string is: Geeks4321 The tuple after the split of string and number: (’Geeks’,’ 4321’)