C# Regex-括号之间匹配字母字符的模式

C# Regex-括号之间匹配字母字符的模式,c#,regex,C#,Regex,有人能帮助提供正则表达式模式来查找括号之间的字母吗?即: [A] 或 [AAA] 或 [巴布] 我正在搜索的字符串可能如下所示: ([A]*[B]+[AAA]) 从这一点上,我希望能够得到的A,B,AAA的字符串。我搜索的字母将始终位于方括号之间。使用此正则表达式: (?<=\[)[A-Za-z]+(?=\]) (?[AAA) 你可以像这样使用它: var matches = Regex.Matches(input, @"(?<=\[)[A-Za-z]+(?=\])"); var

有人能帮助提供正则表达式模式来查找括号之间的字母吗?即:

[A] 或 [AAA] 或 [巴布]

我正在搜索的字符串可能如下所示:

([A]*[B]+[AAA])

从这一点上,我希望能够得到的A,B,AAA的字符串。我搜索的字母将始终位于方括号之间。

使用此正则表达式:

(?<=\[)[A-Za-z]+(?=\])
(?[AAA

你可以像这样使用它:

var matches = Regex.Matches(input, @"(?<=\[)[A-Za-z]+(?=\])");
var matches=Regex.matches(输入,@)(?这个Regex怎么样

\[([a-zA-Z]+)\]

一个简短的问题,什么是?@MPękalski,
?@MPękalski-这里的语法是C#,但是其他语言(例如Perl)有lookahead/lookback。@MPękalski:几乎所有“当前”regex风格都支持lookaround;JavaScript(和Ruby pre-1.9)值得注意的一个例外是,它们只支持向前看,而不支持向后看。一些正则表达式引擎还支持在向后看断言中无限重复(.NET不支持,PHP/Perl/Python/Java不支持像
(?为什么要用
(…)这样的表达式*
?我看不出有任何优势…它将把
[a][b]
组合到一个匹配中,并将添加许多空匹配。除此之外,如果可能的话,我也更喜欢使用捕获组而不是环顾四周。