我試圖用特殊字符(需要我Pattern.quote它們)替換具有該文本的小寫版本的文本,但Pattern.quote函數有時會將\ Q和\ E添加到文本的開始和結尾,以便替換方法找不到它。 我使用的代碼是:Pattern.quote將\ Q和\ E添加到字符串java
bigText = bigText.replaceFirst(Pattern.quote(text),text.toLowerCase());
有沒有辦法失去這些字符?
我試圖用特殊字符(需要我Pattern.quote它們)替換具有該文本的小寫版本的文本,但Pattern.quote函數有時會將\ Q和\ E添加到文本的開始和結尾,以便替換方法找不到它。 我使用的代碼是:Pattern.quote將\ Q和\ E添加到字符串java
bigText = bigText.replaceFirst(Pattern.quote(text),text.toLowerCase());
有沒有辦法失去這些字符?
添加\Q
和\E
正是Pattern.quote()
所做的!你爲什麼不想要那個?
如果您只需引用該字符串的某些字符,則必須手動執行此操作。
@asaf:是的,我意識到,這就是我編輯我的答案的原因。 – 2011-05-05 15:30:13
如果是這樣,它不能被替換,因爲我想要的。另外 - 爲什麼有時它確實有效(意味着它不會添加那些字符)? – Assaf 2011-05-05 15:33:02
讀取OpenJDK 1.6的源代碼只顯示一個不添加的情況,即如果輸入爲'null'(在這種情況下將引發NPE)。據我所知,這是它一直工作的方式。 – 2011-05-05 15:35:23
你能舉一個'text'的例子,你想和它匹配嗎? – 2011-05-05 15:30:45