正規表現を使用して、テキスト内のすべてのリンクを見つけました。自分自身のリンクのみを選択してアンカーを挿入するにはどうすればよいですか?
私はすでに使用しています:
cur=self.textedit.textCursor()
cur.select(QTextCursor.Document)
fmt=QTextCharFormat()
fmt.setAnchorHref(link)
cur.mergeCharFormat(fmt)
これには、テキスト全体がリンクとして作成されるという問題があります。それは、ドキュメント全体を選択しているためです。しかし、見つかったリンクを自動的に選択するにはどうすればよいでしょうか? たとえば、テキストが
Hello world this is a link to www.google.com and it does not work so I ask at www.stackoverflow.com.
www.google.com と www.stackoverflow.com が自動的に選択されるようにしたいと思います。正規表現で既に見つけた正確な2つの文字列。
編集:
リンクを選択する方法を見つけました。最初に、リンクのインデックスを取得します
link="www.google.com"
text=self.textedit.toPlainText()
selectTextAt = text.index(link)
cur=self.textedit.textCursor()
cur.setPosition(selectTextAt)
cur.movePosition(QTextCursor.Right, QTextCursor.KeepAnchor, len(link))
self.textedit.setTextCursor(cur)
またはさらに良い:
cur=self.textedit.document().find(link,cur)
self.textedit.setTextCursor(cur)
createHyperlink=cur.selectedText()
fmt=QTextCharFormat()
fmt.setAnchorHref(createHyperlink)
cur.mergeCharFormat(fmt)
次に、他に2つの問題があります。
リンクは、テキストをhtmlとして再設定した後にのみ表示されます
リンクをクリックしても何も起こりませんが、すべてのテキストがクリアされます。
html を phase5 (html-editor) に入力すると、リンクが「a href="http://..:」のような場合にのみ機能し、「a href="www....」ではないように見えます。何か提案はありますか?