繁体   English   中英

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

[英]Extract words from string before number Python

大家好,我想知道是否可以在 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

问候哈扎

正则表达式会做

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
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/

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)

此实现将允许您提取字符串中每个数字之前的所有单词集。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM