Skip to main content
 首页 » 编程设计

c#之多行正则表达式不匹配

2024年01月01日57exmyth

我正在尝试使用 .NET 获取多行正则表达式,但运气不佳。我相信我认为这将匹配多行是正确的,但第三个匹配总是被省略。我需要捕获收件人和原因字段。我知道我可以用一个循环和两个正则表达式来做到这一点,但我更喜欢更简洁的解决方案。

我使用的正则表达式是:

(.*?)Destination: mobile (\(SMS\))?(\d{10,})(?:.*?)Reason: (.*) 

它应该匹配这个文本:

NON-DELIVERY NOTE 
 
The following message was not delivered: 
 
Addressed to: 01234567890@sms.local 
Destination: mobile (SMS)01234567890 
Reference number: 155618127W 
 
Reason: Rejected by network operator 

请您参考如下方法:

在这种情况下,您需要使用 RegexOptions.Singleline而不是 RegexOptions.Multiline。