在 TextMate 问题中用反向引用替换
Replacing with backreference in TextMate issue
我正在使用 TextMate 将包含左括号和右括号之间字符的表达式 [my_expression]
替换为 {my_expression}
;所以我试着替换
\[[^]]*\]
来自
{}
正则表达式匹配正确的表达式,但替换给出 {}
,因此无法识别变量。有人可以有想法吗?
使用捕获组(...)
:
\[([^\]]*)\]
</code> 是对包含在 <code>[...]
中的文本的反向引用。
这里是 regex demo and also Numbered Backreferences.
此外,TextMate docs:
1. Syntax elements
(...)
group
20.4.1 Captures
To reference a capture, use $n
where n is the capture register number. Using [=16=]
means the entire match.
还有:
- If you want to use
[
, -
, ]
as a normal character in a character class, you should escape these characters by \
.
你忘记转义了一个字符,[^]]
应该是[^\]]
。
您还需要一个捕获组。 </code> 是 <a href="http://www.regular-expressions.info/replacebackref.html" rel="nofollow">back-referencing</a> <strong><code>1st
捕获组 ,而您没有捕获组,因此请使用以下正则表达式:
\[([^\]]*)\]
这会在 [^\]]*
周围添加 ()
,因此会捕获 []
中的数据。有关详细信息,请参阅 Capture Groups
上的此页面
但是,这个 RegEx 更短:
\[(.*?)\]
也替换为{}
我正在使用 TextMate 将包含左括号和右括号之间字符的表达式 [my_expression]
替换为 {my_expression}
;所以我试着替换
\[[^]]*\]
来自
{}
正则表达式匹配正确的表达式,但替换给出 {}
,因此无法识别变量。有人可以有想法吗?
使用捕获组(...)
:
\[([^\]]*)\]
</code> 是对包含在 <code>[...]
中的文本的反向引用。
这里是 regex demo and also Numbered Backreferences.
此外,TextMate docs:
1. Syntax elements
(...)
group20.4.1 Captures
To reference a capture, use$n
where n is the capture register number. Using[=16=]
means the entire match.
还有:
- If you want to use
[
,-
,]
as a normal character in a character class, you should escape these characters by\
.
你忘记转义了一个字符,[^]]
应该是[^\]]
。
您还需要一个捕获组。 </code> 是 <a href="http://www.regular-expressions.info/replacebackref.html" rel="nofollow">back-referencing</a> <strong><code>1st
捕获组 ,而您没有捕获组,因此请使用以下正则表达式:
\[([^\]]*)\]
这会在 [^\]]*
周围添加 ()
,因此会捕获 []
中的数据。有关详细信息,请参阅 Capture Groups
但是,这个 RegEx 更短:
\[(.*?)\]
也替换为{}