删除python中同时包含字母和数字的字符串

2024-06-16 11:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子

c=("Snap-on Power M1302A5 Imperial,IMPRL 0.062IN")

我需要把上面的字符串转换成

^{pr2}$

也就是说,我需要删除同时包含字母和数字的字符串

如何在python中实现这一点?在

我试过了

c=c.apply(word_tokenize)
c = c.apply(lambda x: [item for item in x if item.isalpha()])

但有产出

c=("Snap-on Power MA Imperial,IMPRL IN")

Tags: 字符串inon字母数字itemwordapply
3条回答

这个答案和其他答案一样

步骤1:将字符串拆分为不同的单词

第二步:检查每个单词是否包含数字,是否跳过该单词

第三步:从没有数字的单词生成一个字符串

line = "Snap-on Power M1302A5 Imperial,IMPRL 0.062IN"

split_line = line.split(" ")

final_split_string = []

for word in split_line:
    skip_word = False
    for letter in word:
        if letter.isdigit():
            #check if the current word contains a number
            skip_word = True

    if not skip_word:
        #skip a word if it contains number
        final_split_string.append(word)

final_string = " ".join(final_split_string)

同时添加基于regex的解决方案:

c = "Snap-on Power M1302A5 Imperial,IMPRL 0.062IN"
only_a = []
for word in c.split():
    #print(word)
    if not re.search('\d',word):
        #print(word)
        only_a.append(word)
' '.join(only_a)

输出:'Snap-on Power Imperial,IMPRL'

我不知道你到底想要什么,但似乎你想删除有数字的单词。在这种情况下,您可以在此处使用^{}

>>> c = "Snap-on Power M1302A5 Imperial,IMPRL 0.062IN"
>>> ' '.join(w for w in c.split() if not any(x.isdigit() for x in w))
Snap-on Power Imperial,IMPRL

相关问题 更多 >