任何人都可以協助提供正則表達式來查找括號之間的字母嗎? IE:正則表達式 - 用於匹配括號內的字母字符的模式
[A] 或 [AAA] 或 [BAB]
我搜索的字符串可能是這樣的:
([A] * [B] + [AAA])
從那我希望能夠得到字符串中的A,B,AAA。我正在搜索的字母將始終位於方括號之間。
任何人都可以協助提供正則表達式來查找括號之間的字母嗎? IE:正則表達式 - 用於匹配括號內的字母字符的模式
[A] 或 [AAA] 或 [BAB]
我搜索的字符串可能是這樣的:
([A] * [B] + [AAA])
從那我希望能夠得到字符串中的A,B,AAA。我正在搜索的字母將始終位於方括號之間。
使用該正則表達式:
(?<=\[)[A-Za-z]+(?=\])
比賽以粗體:
[甲]或[AAA]或[BAB] ([甲 ] * [B] +> [AAA])
你可以使用它像:
var matches = Regex.Matches(input, @"(?<=\[)[A-Za-z]+(?=\])");
這個怎麼樣的正則表達式?
\[([a-zA-Z]+)\]
爲什麼你用'(...)*'包裝模式?我沒有看到任何優勢......它會將'[a] [b]'結合到一個單一的比賽中,並且會添加大量的空白比賽。除此之外,如果可能的話,我也更喜歡使用捕獲組來查找。 – Kobi 2011-04-04 11:40:48
@Kobi更正。 – 2011-04-04 11:46:06
一個小問題,**?<= **或**?= **是做什麼的?我假設它在** C#正則表達式中僅工作**(?)。 – 2011-04-04 11:36:18
@MPękalski,'?<='是一個積極的lookbehind斷言,'?='是一個積極的lookahead斷言。問題在'c#'標記下,所以這應該起作用。 – Alex 2011-04-04 11:40:16
+1,但我認爲你需要'+'而不是'*'。 – 2011-04-04 11:42:03