python 以逗号分割,忽略引号内的逗号
加posix=True 和不加posix=True 有区别
前两个是加和不加posix=True的对比,最后一个例子是以空格分割语句的例子lex.quotes = '"' 去掉效果一样
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import
shlex
str
=
shlex.shlex(
"ab,'cdsfd,sfsd',ewewq,5654"
,posix
=
True
)
str
.whitespace
=
','
str
.whitesapce_split
=
True
b
=
list
(
str
)
print
b
[
'ab'
,
'cdsfd,sfsd'
,
'ewewq'
,
'5654'
]
import
shlex
str
=
shlex.shlex(
"ab,'cdsfd,sfsd',ewewq,5654"
)
str
.whitespace
=
','
str
.whitesapce_split
=
True
b
=
list
(
str
)
print
b
[
'ab'
,
"'cdsfd,sfsd'"
,
'ewewq'
,
'5654'
]
import
shlex
lex
=
shlex.shlex(
'''This string has "some double quotes" and 'some single quotes'.'''
)
lex.quotes
=
'"'
lex.whitespace_split
=
True
b
=
list
(lex)
[
'This'
,
'string'
,
'has'
,
'"some double quotes"'
,
'and'
,
"'some"
, 'single
', "quotes'
."]
|
1
|
|
1
|
|
1
2
3
4
5
|
最近的python中引入了支持正则分割的shlex模块,他能很好的处理空格符的问题。如下
<
/
p>
<
/
span>
|
1
|
|
1
2
|
>>> shlex.split(
'this is "a test"'
)
[
'this'
,
'is'
,
'a test'
]
|