karim.liateni at free.fr
Fri Jul 29 11:37:34 CEST 2011
On 07/29/2011 09:24 AM, Web Dreamer wrote:
> Nobody a écrit ce jeudi 28 juillet 2011 18:37 dans
> <pan.2011.07.28.16.37.35.287000 at nowhere.com> :
>> On Thu, 28 Jul 2011 17:48:34 +0200, Web Dreamer wrote:
>>>> I would like to parse this TCL command line with shlex:
>>>> '-option1 [get_rule A1 B2] -option2 $VAR -option3 TAG'
>>>>>> s = s.replace('[','"[')
>>>>>> s = s.replace(']',']"')
>> Note that this approach won't work if you have nested brackets or braces.
>> That would require a real parser.
> I tried with the shlex class, but adding '' to a shlexobject.quotes
> doesn't work.
> Indeed, shlex expects an opening and closing quote to be the same, and [ is
> different from ] so shlex therefore expects an opening [ to be closed with [
> and not ]
> My solution indeed only works as long as there are not any nested brackets.
Yeah I saw that shlex object behavior is slighty different from
fonction. the char minus by default is taken as a individual word and in
it is not. get_token() method return '-' alone and you have to set
wordchars += '-' to have the same behavior as shlex.split().
More information about the Python-list