Skip to main content
 首页 » 编程设计

c#之我需要一些文本解析帮助(正则表达式/C#)

2024年01月25日24zhenyulu

我可以借助适当的正则表达式将以下字符串解析为 3 个变量。带有注释的部分 //TODO: 是我需要正则表达式帮助的地方。现在我刚刚分配了一个静态值,但需要用解析示例文本的真实正则表达式替换它。谢谢!

// This is what a sample text will look like. 
var text = "Cashpay @username 55 This is a sample message"; 
 
// We need to parse the text into 3 variables. 
// 1) username - the user the payment will go to. 
// 2) amount - the amount the payment is for. 
// 3) message - an optional message for the payment. 
var username = "username"; // TODO: Get the username value from the text. 
var amount = 55.00; // TODO: Get the amount from the text. 
var message = "This is a sample message"; // TODO: Get the message from the text. 
 
// now write out the variables 
Console.WriteLine("username: " + username); 
Console.WriteLine("amount: " + amount); 
Console.WriteLine("message: " + message); 

请您参考如下方法:

您可以使用捕获组:

var regex = new Regex(@"^Cashpay\s+@([A-Za-z0-9_-]+)\s+(\d+)\s+(.+)$"); 
var text = "Cashpay @username 55 This is a sample message"; 
 
var match = regex.Match(text); 
 
if (!match.Success) 
    //Bad string! Waaaah! 
 
string username = match.Groups[1].Value; 
int amount = int.Parse(match.Groups[2].Value); 
string message = match.Groups[3].Value;