C# 正则表达式匹配组
我正在寻找一个正则表达式来匹配这样的组:[“lda”、“#$”、“5”]。我已经试着看了几个小时的教程,但仍然让我很困惑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+)中的所有内容
以下是我迄今为止所做的尝试:
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+)