如何从字符串中获取单个单词?

2024-06-01 11:24:06 发布

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

input = (Columbia and (India  or Singapore) and Malaysia)

output = [Columbia, India, Singapore, Malaysia]

基本上忽略python关键字和括号

我尝试了下面的代码,但仍然无法消除大括号

import keyword

my_str=input()
l1=list(my_str.split(" "))
l2=[x for x in l1 if not keyword.iskeyword((x.lower()))]
print(l2)

Tags: orandl1inputoutputmy关键字keyword
2条回答
import keyword
my_str=input()
my_str = re.sub(r'[\(\)\[\]{}]','',my_str)
l1=list(my_str.split(" "))
l2=[x for x in l1 if not keyword.iskeyword((x.lower()))]
print(l2)

re.sub(r'[\(\)\[\]{}]','',my_str)

这将用空字符串替换所有类型的大括号(从而删除它们)

试试这个:

import re
from keyword import iskeyword

inp = '(Columbia and (India or Singapore) and Malaysia)'

c = re.compile(r'\b\w+\b')

print([i.group() for i in c.finditer(inp) if not iskeyword(i.group().lower())])

输出:

['Columbia', 'India', 'Singapore', 'Malaysia']

没有正则表达式:

from keyword import iskeyword

inp = '(Columbia and (India or Singapore) and Malaysia)'

res = []
for i in inp.split():
    stripped = i.strip('()[]{}')
    if not iskeyword(stripped):
        res.append(stripped)

print(res)

相关问题 更多 >