从数字Python之前的字符串中提取单词

时间:2020-06-19 16:58:54

标签: python python-3.x string numbers

您好,我想知道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

问候 比萨饼

4 个答案:

答案 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之前没有空格

阅读:https://www.learnpython.org/

答案 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']