如何将包含双引号的单词提取到列表中,例如 Python 中的 GOOGLE



我正在创建一个网站的搜索功能。我需要将用户输入的句子提取到列表中,但要求引号中的单词应该是列表中的一个项目。

请关注我期待中的杰夫·沃森纽约这两个词。

期望:

str = 'Hello, I am "Jeff Watson" from a part of "New York".'
result = ["Hello", "I", "am", "Jeff Watson", "from", "a", "part", "of", "New York"]

如果您的答案也适用于单引号,那将是最好的。

查找带引号的子字符串或单词的正则表达式:

import re
string = 'Hello, I am "Jeff Watson" from NY.'
[next(x for x in m if x)
for m in re.findall(r'"([^"]*)"|'([^']*)'|(w+)', string)]

(另外,尽量避免在 Python 中使用str作为变量名,因为它通常包含字符串类型。

这是另一种方法:

[m[1] for m in re.findall(r'(["'])?((?(1).*?1|w+))', string)]

一个非常新手的解决方案

s = 'Hello, I am "Jeff Watson" from NY.'
ans = []
i = 0
while i < len(s):
if s[i].isalnum():
temp = ""
while s[i].isalnum():
temp += s[i]
i += 1
ans.append(temp)
if s[i] == '"':
temp = '"'
i += 1
while s[i] != '"':
temp += s[i]
i += 1
temp += '"'
ans.append(temp)
i += 1
print(ans)

相关内容

  • 没有找到相关文章

最新更新