使用python,我想拆分以下字符串:
a=foo, b=bar, c="foo, bar", d=false, e="false"
Run Code Online (Sandbox Code Playgroud)
这应该导致以下列表:
['a=foo', 'b=bar', 'c="foo, bar"', 'd=false', 'e="false'"']
Run Code Online (Sandbox Code Playgroud)
当在posix模式下使用shlex并使用","分割时,get的参数c被正确处理.但是,它删除了引号.我需要它们,因为它们false不一样"false",例如.
我的代码到目前为止:
import shlex
mystring = 'a=foo, b=bar, c="foo, bar", d=false, e="false"'
splitter = shlex.shlex(mystring, posix=True)
splitter.whitespace += ','
splitter.whitespace_split = True
print list(splitter) # ['a=foo', 'b=bar', 'c=foo, bar', 'd=false', 'e=false']
Run Code Online (Sandbox Code Playgroud) 我有以下文字
text = 'This is "a simple" test'
Run Code Online (Sandbox Code Playgroud)
我需要以两种方式拆分它,首先是引号然后是空格,导致:
res = ['This', 'is', '"a simple"', 'test']
Run Code Online (Sandbox Code Playgroud)
但是str.split()我只能使用引号或空格作为分隔符.是否有多个分隔符的内置函数?
我正在尝试编写一个正则表达式来替换所有未包含在引号中的空格,所以这样的事情:
a = 4, b = 2, c = "space here"
Run Code Online (Sandbox Code Playgroud)
会回来这个:
a=4,b=2,c="space here"
Run Code Online (Sandbox Code Playgroud)
我花了一些时间搜索这个网站,我发现了一个类似的q/a(用空格分割一个字符串 - 保留引用的子串 - 在Python中),它将用一个可以在之后重新替换的标记替换引号内的所有空格擦拭所有其他空间...但我希望有一种更清洁的方式.
我想用空格将一个字符串拆分为3个元素,但我不希望拆分引用的子字符串(它们也可以包含反斜杠来转义引号).
例如:
"command argument other arguments and options"
>> ['command', 'argument', 'other arguments and options']
'command "my argument" other arguments and options'
>> ['command', 'my argument', 'other arguments and options']
'command "my \"ugly\" argument" other "arguments" and options'
>> ['command', 'my "ugly" argument', 'other "arguments" and options']
Run Code Online (Sandbox Code Playgroud)
我看了一下这个类似的问题,但shlex.split()也会拆分字符串的结尾(它将删除引号和空格),而我想保持第三个元素不变.
我试图使用shlex.split(mystring)[0:2]以获得前两个元素,但后来我无法找到一个很好的解决方案从原始字符串中提取第三个元素.实际上我希望我可以使用带参数shlex.split()的str.split()方法maxsplit.
有没有比使用更好的方法shlex.split()呢?也许是正则表达式?谢谢!
我有几个字符串,当它们不在括号内时,我想用空格分隔它们。
例如
sentence = "blah (blah2 (blah3))|blah4 blah5"
Run Code Online (Sandbox Code Playgroud)
应该产生
["blah", "(blah2 (blah3))|blah4", "blah5"]
Run Code Online (Sandbox Code Playgroud)
我试过了:
re.split(r"\s+(?=[^()]*(?:\(|$))", sentence)
Run Code Online (Sandbox Code Playgroud)
但它会产生:
['blah', '(blah2', '(blah3))|blah4', 'blah5']
Run Code Online (Sandbox Code Playgroud) 我有一个字符串,可以包含这样的东西:
s = "'Mark, Bob','John'"
Run Code Online (Sandbox Code Playgroud)
解析为3个字符串的最佳方法是什么?我对pyparsing很新,我担心我不太了解它
(编辑)对不起,我不是很清楚.这是使用语法和pyparsing来解析文件的程序的一部分.这是输入的一小部分,我不知道该怎么做.这应该真正代表一个由三个名字组成的数组,这就是我想要从中得到的.
谢谢
我有一个像这样的字符串:
>>> s = '1,",2, ",,4,,,\',7, \',8,,10,'
>>> s
'1,",2, ",,4,,,\',7, \',8,,10,'
Run Code Online (Sandbox Code Playgroud)
我想使用不同的分隔符(不仅仅是空格)来分割它,并且我还想尊重和保留引号(单引号或双引号)。
s按分隔符拆分时的预期结果,:
['1', ',2, ', '', '4', '', '', ',7, ', '8', '', '10', '']
Run Code Online (Sandbox Code Playgroud)