Pythonでは、文字列を分割する際に引用符を尊重する方法があります。これは、文字列内の引用符で囲まれた部分を一つの要素として扱いたい場合に便利です。具体的な方法は以下の通りです。
まず、Pythonの組み込みモジュールであるshlex
を使用します。このモジュールは、シェル風のレキシングを行うためのクラスと関数を提供しています。
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']
上記のコードでは、shlex.shlex
を使用して文字列を分割しています。posix=True
を指定すると、POSIXモードで動作し、引用符で囲まれた部分を一つの要素として扱います。ただし、このモードでは引用符が削除されてしまいます。
引用符を保持したい場合は、posix=False
を指定します。
import shlex
text = 'This is "a simple" test'
print(shlex.split(text, posix=False)) # ['This', 'is', '"a simple"', 'test']
このように、Pythonのshlex
モジュールを使用することで、引用符を尊重して文字列を分割することが可能です。この機能は、引用符で囲まれた部分を一つの要素として扱いたい場合に非常に便利です。