Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式匹配组_C#_Regex - Fatal编程技术网

C# 正则表达式匹配组

C# 正则表达式匹配组,c#,regex,C#,Regex,我正在寻找一个正则表达式来匹配这样的组:[“lda”、“#$”、“5”]。我已经试着看了几个小时的教程,但仍然让我很困惑 以下是我迄今为止所做的尝试: main: lda #$5 sta $2 lda #$0 sta $0 lda #$10 sta $1 ^(?.*?\s*(?[#][$])\s*(?\d)$ 似乎只配5美元 这都是Visual Studio 2012 C#(\w+)\s+((\35;\$)(\ d+)\124;\$\ d+)中的所有内容

我正在寻找一个正则表达式来匹配这样的组:[“lda”、“#$”、“5”]。我已经试着看了几个小时的教程,但仍然让我很困惑


以下是我迄今为止所做的尝试:

main:
  lda #$5
  sta $2
  lda #$0
  sta $0  
  lda #$10    
  sta $1 
^(?.*?\s*(?[#][$])\s*(?\d)$
似乎只配5美元


这都是Visual Studio 2012 C#

(\w+)\s+((\35;\$)(\ d+)\124;\$\ d+)
中的所有内容。您可以使用此正则表达式:

^(?<label>.*?)\s*(?<sign>[#][$])\s*(?<num>\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
}

以上内容适用于您提供的所有输入。

您能否澄清您期望的结果是什么?我希望我的结果是:Group x=“lda”、“#$”、“5”以下是我迄今为止尝试的:^(?.*?)\s*(?[#][$])\s*(?\d)$在本文中:main:lda#$5 sta$2 lda#$0 sta$0 lda#$10 sta$1它似乎只匹配lda#$5我还想匹配sta$5之类的东西,我如何调整它呢?谢谢这对我来说很好。我有另一个请求。这是文本:我想匹配除了换行和“main:”.所以“nota”将变成[“nota”、“”、“”],而“lda#$5”将变成[“lda”、“#$”、“5”]。这将起作用:(\w+)\s+([^\d]+)(\d+)(\w+)(\n)(\n)
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
}
(\w+)\s+([^\d]+)(\d+)