選択した文字列の語順を逆にするSublimeTextプラグイン(Pythonを使用)を作成しようとしています。主な機能は動作していますが、問題は、単語の末尾にあるすべての記号(ピリオド、コンマ、疑問符など)がそのまま残り、記号が移動するようにすべてを正しく反転させることです。単語の先頭に。
def run(self, edit):
selections = self.view.sel()
# Loop through multiple text selections
for location in selections:
# Grab selection
sentence = self.view.substr(location)
# Break the string into an array of words
words = sentence.split()
# The greasy fix
for individual in words:
if individual.endswith('.'):
words[words.index(individual)] = "."+individual[:-1]
# Join the array items together in reverse order
sentence_rev = " ".join(reversed(words))
# Replace the current string with the new reversed string
self.view.replace(edit, location, sentence_rev)
# The quick brown fox, jumped over the lazy dog.
# .dog lazy the over jumped ,fox brown quick The
私は各単語をループしてendswith()メソッドを使用してすばやく修正することができましたが、これでは複数のシンボルが見つからないか(ifステートメントの長いリストがない場合)、複数のシンボルを考慮してすべてを移動することはできません。
私は正規表現で遊んでいますが、まだ機能する解決策がありません。シンボルのインデックスを変更する方法を探していましたが、それでも何もありません...
詳細をお知らせいただければお知らせください。
ありがとう!