[英]Extract words/sentence that occurs before a keyword from a string - 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 之前没有那个空格
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.