3

我正在尝试在 Visual Studio 中进行查找替换,但我似乎无法找到如何[Name]使用正则表达式进行查找...我可以在堆栈上的其他问题的帮助下找到第一个括号,但它不会同时找到开头和结尾和识别括号内的文字。

4

3 回答 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 回答