首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python shlex.split(),忽略单引号

Python shlex.split(),忽略单引号
EN

Stack Overflow用户
提问于 2011-07-29 11:37:32
回答 2查看 20.8K关注 0票数 10

在Python语言中,我如何使用shlex.split()或类似的工具来拆分字符串,只保留双引号?例如,如果输入为"hello, world" is what 'i say',则输出将为["hello, world", "is", "what", "'i", "say'"]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-29 11:52:15

代码语言:javascript
复制
import shlex

def newSplit(value):
    lex = shlex.shlex(value)
    lex.quotes = '"'
    lex.whitespace_split = True
    lex.commenters = ''
    return list(lex)

print newSplit('''This string has "some double quotes" and 'some single quotes'.''')
票数 16
EN

Stack Overflow用户

发布于 2011-07-29 11:45:02

您可以使用shlex.quotes控制哪些字符将被视为字符串引号。您还需要修改shlex.wordchars,以保留包含isay'

代码语言:javascript
复制
import shlex

input = '"hello, world" is what \'i say\''
lexer = shlex.shlex(input)
lexer.quotes = '"'
lexer.wordchars += '\''

output = list(lexer)
# ['"hello, world"', 'is', 'what', "'i", "say'"]
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6868382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档