2011-05-05 37 views
1

我試圖用特殊字符(需要我Pattern.quote它們)替換具有該文本的小寫版本的文本,但Pattern.quote函數有時會將\ Q和\ E添加到文本的開始和結尾,以便替換方法找不到它。 我使用的代碼是:Pattern.quote將\ Q和\ E添加到字符串java

bigText = bigText.replaceFirst(Pattern.quote(text),text.toLowerCase()); 

有沒有辦法失去這些字符?

+0

你能舉一個'text'的例子,你想和它匹配嗎? – 2011-05-05 15:30:45

回答

2

添加\Q\E正是Pattern.quote()所做的!你爲什麼不想要那個?

如果您只需引用該字符串的某些字符,則必須手動執行此操作。

+0

@asaf:是的,我意識到,這就是我編輯我的答案的原因。 – 2011-05-05 15:30:13

+0

如果是這樣,它不能被替換,因爲我想要的。另外 - 爲什麼有時它確實有效(意味着它不會添加那些字符)? – Assaf 2011-05-05 15:33:02

+0

讀取OpenJDK 1.6的源代碼只顯示一個不添加的情況,即如果輸入爲'null'(在這種情況下將引發NPE)。據我所知,這是它一直工作的方式。 – 2011-05-05 15:35:23