Hi all I was wondering if it is possible in python to extract words from a string before a number.
For Example:
Hi my name is hazza 50 test test test
Hi hazza 60 test test test
hazza 50 test test test
I want to get the words before the number not after if it is possible.
Hi my name is hazza
Hi hazza
hazza
Regards Hazza
Regex will do
import re
strings = '''
Hi my name is hazza 50 test test test
Hi hazza 60 test test test
hazza 50 test test test
hazza test test test
'''
for s in re.findall('([a-zA-Z ]*)\d*.*',strings):
print(s)
Gives
Hi my name is hazza
Hi hazza
hazza
hazza test test test
is_digit = False
str = "Hi my name is hazza 50 test test test"
r = 0
for c in str:
if c.isdigit():
# is_digit = True
r = str.index(c)
print(str[0:r-2])
r is index of 5 r-2 because you want the string without that space before 50
s = "Hi my name is hazza 50 test test test"
result = ""
for i, char in enumerate(s):
if char.isdigit():
result = s[:i]
break
print(result)
This implementation will allow you to extract all sets of words before each number within your string.
s = '50 Hi hazza 60 test test 70 test'
# Split string on spaces
split = s.split()
# Instantiate list to hold words
words = []
curr_string = ''
for string in split:
# Check if string is numeric value
if string.isnumeric():
# Catch edge case where string starts with number
if curr_string != '':
# Add curr_string to words list -- remove trailing whitespace
words.append(curr_string.strip())
curr_string = ''
else:
# If string not numeric, add to curr_string
curr_string += string + ' '
print(words)
Output: ['Hi hazza', 'test test']
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.