2015-12-15 48 views
1

在WebStorm,我使用的查找和正則表達式替換功能,以取代十六進制顏色代碼爲大寫等效例如#ddd到#DDDDDDWebstorm MAC OSX:用於反向引用正則表達式是不工作在替換字段

圖片顯示我的嘗試: enter image description here 查找領域有#[0-9a-z]{3,6};正則表達式,它正確地找到顏色代碼。 替換字段有\U$1\

正則表達式在替換字段中無法識別。工具提示說Empty string。我也嘗試過其他值。

我refered上Changing case of the characters PhpStorm的文檔,我相信它應該WebStorm有效了。

+0

嘗試'\ U \ 1' ....... –

+0

你沒有1組,使用0組:'\ U $ 0'。 –

回答

1

需要注意的是Webstorm uses Java regular expressions是很重要的:

WebStorm是基於Java的應用程序,所以我們使用Java引擎來處理一切,包括正則表達式。

Java的正則表達式不支持\U也不\u\l\L運營商。

但是,您可以在記事本中使用它們++。

我看你跟着Webstorm Help page這顯示了一個例子搜索,並用正則表達式\stitle="(.*)?"\s*(/>*)\U$1更換更換。

$1是一個反向引用到什麼已經被圓括號內的第一個子模式拍攝。由於#[0-9a-z]{3,6};沒有未轉義的括號對,因此$1反向引用不指向任何文本。相反,請使用組0:\U$0

如果你願意,你可以定義第一個捕獲組圓整模式:(#[0-9a-z]{3,6};)然後用你的替換模式。

+0

它使用'\ U $ 0'部分工作。現在看來,替換模式不會將大寫'U'識別爲搜索字符串。被取代的字符串是'U#ffffff',用於十六進制顏色'#ffffff'。 –

+0

然後嘗試'(#[0-9a-z] {3,6};)'和你的'\ U $ 1'替換。 –

+0

我已經嘗試過,但沒有成功。 –

相關問題