正则表达式匹配组

时间:2014-03-12 03:41:07

标签: c# regex

main:
  lda #$5
  sta $2
  lda #$0
  sta $0  
  lda #$10    
  sta $1 

我正在寻找能够像这样匹配集团的正则表达式:[" lda","#$"," 5"] 。我已经尝试了几个小时的教程,但这对我来说仍然非常混乱。

这是我到目前为止的尝试:

^(?<label>.*?)\s*(?<sign>[#][$])\s*(?<num>\d)$

似乎只匹配lda#$ 5

这完全在Visual Studios 2012 C#

3 个答案:

答案 0 :(得分:0)

(\w+)\s+((#\$)(\d+)|\$\d+)应该这样做:http://regex101.com/r/pJ0yH8

答案 1 :(得分:0)

您可以使用此正则表达式:

(?<=^\s*)(\w+)\s(\D+)(\d)

代码如下:

String input = "  lda #$5";
String pattern = @"(?<=^\s*)(\w+)\s(\D+)(\d+)$";

Match m = Regex.Match(input, pattern, RegexOptions.Multiline);

if (m.Groups.Count == 4) 
{
    string firstpart = m.Groups[1].ToString();  // lda
    string secondpart = m.Groups[2].ToString();  // #$
    string thirdpart = m.Groups[3].ToString();  // 5
}

答案 2 :(得分:0)

试试这个:

(\w+)\s+([^\d]+)(\d+)
上面的

适用于您提供的所有输入。