您好,我想知道python是否有可能从数字前的字符串中提取单词。
例如:
Hi my name is hazza 50 test test test
Hi hazza 60 test test test
hazza 50 test test test
如果可能的话,我想让数字前的单词而不是之后的单词。
Hi my name is hazza
Hi hazza
hazza
问候 比萨饼
答案 0 :(得分:3)
正则表达式可以
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)
给予
Hi my name is hazza
Hi hazza
hazza
hazza test test test
答案 1 :(得分:0)
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是5的索引 r-2,因为您希望字符串在50之前没有空格
答案 2 :(得分:0)
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)
答案 3 :(得分:0)
此实现将允许您提取字符串中每个数字之前的所有单词集。
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)
输出:
['Hi hazza', 'test test']