我正在尝试在 Visual Studio 中进行查找替换,但我似乎无法找到如何[Name]
使用正则表达式进行查找...我可以在堆栈上的其他问题的帮助下找到第一个括号,但它不会同时找到开头和结尾和识别括号内的文字。
问问题
3148 次
3 回答
6
您需要转义左括号和右括号,因为它们是正则表达式元字符。像这样的东西:
\[Name\]
于 2013-07-18T15:29:42.907 回答
2
括号通常是正则表达式引擎的运算符
[a-z] # everything from 'a' to 'z'
[^a] # everything except 'a'
[^a]+ # one or more chars excluding 'a'
因此,如果您想匹配实际的括号字符,您需要对它们进行转义(使用反斜杠)所以在这种情况下,您的正则表达式将以开头\[
和结尾\]
我们在中间放什么?我们需要能够拥有除了右括号之外的任何东西,重复一次或多次。那将是:
[^\]]+ # one or more chars excluding ']'
所以总而言之,你的答案是:
\[[^\]]+\]
于 2013-07-18T15:41:28.013 回答
1
假设“名称”是任何有效\[{:i}\]
的标识符,那么应该可以解决问题。您可以\1
在替换表达式中使用来获取名称的值。
注意::i
是 Visual Studio 唯一的快捷方式。标准正则表达式等价物(也适用于此处)将是[A-Za-z0-9_]+
.
注意:对于不熟悉 Visual Studio 正则表达式的任何读者,大括号用于捕获组,而不是在其他任何地方使用的普通圆括号。
于 2013-07-18T15:31:47.390 回答