Regex查找方括号和文本



我正在visual studio中尝试查找替换,但似乎找不到如何使用正则表达式查找[Name]。。。在stack上其他问题的帮助下,我可以找到第一个括号,但它无法找到开头和结尾,也无法识别括号内的文本。

您需要转义左括号和右括号,因为它们是regex元字符。类似这样的东西:

[Name]

括号通常是正则表达式引擎的运算符

[a-z]    # everything from 'a' to 'z'
[^a]     # everything except 'a'
[^a]+    # one or more chars excluding 'a'

因此,如果你想匹配实际的括号字符,你需要对它们进行转义(使用反斜杠),所以在这种情况下,你的正则表达式将以[开始,以] 结束

我们在中间放了什么?我们需要能够有任何东西,除了结束括号,重复一次或多次。那就是:

 [^]]+   # one or more chars excluding ']'

所以总的来说,你的答案是:

 [[^]]+]

假设"name"是任何有效的标识符,那么[{:i}]就可以了。可以在替换表达式中使用1来获取名称的值。

注意::i是Visual Studio独有的快捷方式。标准的regex等价物(这里也适用)是[A-Za-z0-9_]+

注意:对于任何不熟悉VisualStudio正则表达式的读者来说,花括号用于捕获组,而不是其他地方使用的普通圆括号。

最新更新