当前位置: 首页 > 面试题库 >

不使用Python字符串split()分割双引号单词吗?

段成益
2023-03-14
问题内容

使用Python字符串函数split()时,是否有人有一个巧妙的技巧将用双引号引起来的项目视为不拆分单词?

说我只想在空白处分割,我有这个:

>>> myStr = 'A B\t"C" DE "FE"\t\t"GH I JK L" "" ""\t"O P   Q" R'
>>> myStr.split()
['A', 'B', '"C"', 'DE', '"FE"', '"GH', 'I', 'JK', 'L"', '""', '""', '"O', 'P', 'Q"', 'R']

我想将双引号中的任何内容都视为一个单词,即使嵌入了空格,也希望得到以下结果:

['A', 'B', 'C', 'DE', 'FE', 'GH I JK L', '', '', 'O P   Q', 'R']

或者至少是这样,然后我将双引号删除:

['A', 'B', '"C"', 'DE', '"FE"', '"GH I JK L"', '""', '""', '"O P   Q"', 'R']

有非正则表达式建议吗?


问题答案:

您将无法通过使用此行为str.split()。如果您可以进行相当复杂的解析(例如忽略双引号和反斜杠),shlex.split()那么您可能正在寻找:

>>> shlex.split(myStr)
['A', 'B', 'C', 'DE', 'FE', 'GH I JK L', '', '', 'O P   Q', 'R']


 类似资料:
  • Python 中,除了可以使用一些内建函数获取字符串的相关信息外(例如 len() 函数获取字符串长度),字符串类型本身也拥有一些方法供我们使用。 注意,这里所说的方法,指的是字符串类型 str 本身所提供的,由于涉及到类和对象的知识,初学者不必深究,只需要知道方法的具体用法即可。 从本节开始,将给大家介绍一些常用的字符串类型方法,本节先介绍分割字符串的 split() 方法。 split() 方

  • 问题内容: Java官方文档指出: 它打印: 这与我的预期相去甚远: 为什么会这样呢? 问题答案: 你需要 使用正则表达式,并且在中 |是表示OR运算符的元字符。你需要使用来转义该字符\(使用String编写,因为它也是String文字中的元字符,并且需要另一个字符来对其进行转义)。 你也可以使用 并创建代表的正则表达式的转义版本|。

  • 输入字符串用逗号分隔。但它可能包含双引号内的逗号,需要忽略。下面是示例字符串 下面是我用来拆分逗号的代码,但如果逗号是双引号中字符串的一部分,它就会失败。 所以任何解决这个问题的想法。

  • 问题内容: 我有以下字符串: 我“肯定”想“上学”。 现在,我想在省略号处分割此字符串,即我想获得以下输出: 我会 一定 喜欢 上学 。 问题答案: 如果您是用引号()代替省略号,最简单的解决方案是使用 :

  • 我正在寻找正确的regex来为我提供以下结果: null 例子: 福吧 组1:foo 组2:bar 说明:在空格上拆分 组1:foo bar 描述:用双引号包围,所以将foo和bar分组,但不要打印双引号 null null null null null 组1:foo bar 组2:堆栈溢出 组1:foo'bar 组2:堆栈溢出 组3:如何 组4:do 组5:您 组6:do

  • 问题内容: 我想用定界符空格分割字符串。但它应该智能地处理带引号的字符串。例如,像这样的字符串 它应该返回三个字符串John Smith,Ted和Barry。 问题答案: 弄乱它之后,您可以使用Regex来实现。在以下位置运行“全部匹配”的等效项: 一个Java示例: 输出: 上面使用示例的正则表达式分解可以在这里查看: http://regex101.com/r/wM6yT9 综上所述,正则表达