Webstorm MAC OSX:反向引用的正则表达式在替换字段中不起作用

时间:2015-12-15 06:49:33

标签: regex replace webstorm

在WebStorm中,我使用正则表达式的查找和替换功能将十六进制颜色代码替换为大写等效,例如。 #ddd到#DDDDDD

显示我尝试过的图片: enter image description here 查找字段包含#[0-9a-z]{3,6};正则表达式,并且可以正确找到颜色代码。 替换字段包含\U$1\

在替换字段中无法识别正则表达式。工具提示说Empty string。我也尝试过其他值。

我在Changing case of the characters上提到了PhpStorm的文档,我相信它也应该对WebStorm有效。

1 个答案:

答案 0 :(得分:1)

重要的是要注意Webstorm uses Java regular expressions

  

WebStorm是基于Java的应用程序,因此我们使用Java引擎来处理所有内容,包括正则表达式。

Java正则表达式不支持\U,也不支持\u\l\L运算符。

但是,您可以在Notepad ++中使用它们。

我看到你跟踪显示示例搜索的Webstorm Help page,并替换为\stitle="(.*)?"\s*(/>*)正则表达式和\U$1替换。

$1是对圆括号内第一个子模式捕获的内容的反向引用。由于#[0-9a-z]{3,6};没有未转义的括号,$1反向引用不指向任何文本。相反,请使用组0:\U$0

如果您愿意,可以围绕整个模式定义第一个捕获组:(#[0-9a-z]{3,6};),然后使用替换模式。