簡體   English   中英

如何在插入符號周圍的JTextPane中獲取字符串?

[英]How to get the string in the JTextPane around the caret?

例如,有一個JTextPane有一些文本,如“123456abcd789”,插入符號現在在'7'之間。

請參閱此說明:“123456abcd | 789”。 這里的'|' 代表插入符號。

現在我想在插入符號之前獲得最長的字符串,其中只包含az。 這里是“abcd”。

但是如果我使用方法jtextpane.getCaretPosition(),我將得到一個整數11.(因為在插入符號之前有10個ascii字符和一張圖片)。 這不是我想要的整數。 也許我可以計算img的字符數,但它仍然很麻煩,容易出現錯誤。

那么如何獲得正確的字符串?

<html>
    <body>
        <p>
            Hello, everybody!!<br>
            <img src="xx.jpg">
        </p>
        <p>
            Hello, everybody|!!<br>   //The caret is here, at the left of '!'
            <img src="xx.jpg">
        </p>
        <p>
            Hello, everybody!!<br>
            <img src="xx.jpg">
        </p>
    </body>
<html>

在上面的例子中,插入符號現在在第二句中。

而我想要做的就是在插入符號之前將“所有人”替換為“每個人”(其余的“每個人都保持不變”)。 但是,如果我使用getCaretPosition(),我將無法得到'!'的正確索引。 在HTML文本中。

那么解決方案是什么?

您可以使用正則表達式計算從A到Z和a到z的字符數。

這將是正確的表達式: ([a-zA-Z]+)

您可以使用此在線正則表達式工具嘗試更多組合


編輯

是您可以使用的正則表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM