6
import re
s = 'PythonCookbookListOfContents'
# the first line does not work
print re.split('(?<=[a-z])(?=[A-Z])', s)
# second line works well
print re.sub('(?<=[a-z])(?=[A-Z])', ' ', s)
# it should be ['Python', 'Cookbook', 'List', 'Of', 'Contents']
小文字と大文字の境界から文字列を分割するにはどうすればよいですか?Pythonはゼロ幅のアンカーを分割できません。
2行目が正常に動作しているのに、1行目が動作しないのはなぜですか? re.split
によると
もちろん、findallを使って単語を見つけることはできますが、大文字と小文字の境界に応じて分割する方法はありますか?状況が変わったときにこの問題を処理する必要があり、枠に合わせるために幅がゼロのアンカーを使用する必要があります。 – Booster
あなたはアンカーによって配列を意味しますか? – Onilol
私は先を見て、背後を見て、つまり '?<='と '?='を意味します。 @Onilol – Booster