Skip to main content
 首页 » 编程设计

c# 正则表达式模式

2024年01月24日26zhoujg

类似于我昨天的问题: C# Regex Pattern Conundrum

同样的问题,不同的正则表达式模式。在 http://sourceforge.net/projects/regextester/ 中测试时,正则表达式模式返回所需的匹配项和 http://www.RegexLib.com但是,当在 .NET 中执行该模式时,不会返回任何匹配项。

string SampleText = @"\r\n99. Sample text paragraph one.\r\n100. Sample text here paragraph two.\r\n101. Sample text paragraph three.\r\n"; 
string RegexPattern = @"(?<=\\r\\n\d+\.\s)([^.]+?)here.*?(?=\\r\\n)"; 
Regex FindRegex = new Regex(@RegexPattern, RegexOptions.Multiline | RegexOptions.Singleline); 
Match m = FindRegex.Match(SampleText); 

所需的匹配项是“此处为第二段的示例文本。”

与昨天一样,我不确定问题是我的正则表达式模式还是我的代码。

请您参考如下方法:

您还需要转义特殊的正则表达式字符:

string RegexPattern = @"(?<=\\r\\n\d+\.\s)([^.]+?)here.*?(?=\\r\\n)"; 

或者:

string RegexPattern = "(?<=\\\\r\\\\n\\d+\\.\\s)([^.]+?)here.*?(?=\\\\r\\\\n)"; 

不要忘记 - 您处于 C# 字符串上下文中,因此您需要确保将正确的字符串传递给正则表达式引擎。