检查字母数字单词并输出相同的单词

  • 本文关键字:单词 输出 数字 python
  • 更新时间 :
  • 英文 :


尝试将字母数字部分与字符串分开 例如:如果传递的输入是

BMW X5

我将得到的输出看起来像

X5  

使用内置函数 .isalnum(( 将字母数字与其他单词分开,但输出仍然显示错误。 这

name= 'BMW X5'
if name.isalnum():
model = list(filter(lambda x: x.isalnum(), name.strip().split()))
else:
model = name

预期输出 X5,但这段代码的输出是"BMW X5">

添加not str.isalpha

name= 'BMW X5'
if name.replace(' ', '').isalnum():
model = ' '.join(i for i in name.split() if i.isalnum() and not i.isalpha())
else:
model = name
print(model)

输出:

'X5'

问题是,如果str纯粹按字母顺序排列,str.isalnum则返回True

'AAA'.isalnum()
# True

删除纯字母顺序的单词(即str.isalpha == True(因此可以解决问题。

通过使用正则表达式

import re
def extract_alnum(name):
name = name.split(' ')
result = list(filter(lambda s: bool(re.search(r'd', s)), name))
return result

结果:

extract_alnum('BMW X5')
['X5']

你可以改用正则表达式 - 从这里借用,你可以使用下面的正则表达式来检索字母数字单词:

(?:[0-9][^ ]*[A-Za-z][^ ]*)|(?:[A-Za-z][^ ]*[0-9][^ ]*)

您可以在此处在线测试和修改正则表达式。

最新更新