Skip to main content
 首页 » 编程设计

c#之正则表达式问题

2024年01月11日51落叶

RegexBuddy 显示匹配正常,但在 C# 中,当我尝试使用替换时,分号和大括号没有被替换。

我使用的表达式如下:

@"({\\)(.+?)(}+)|(\s?\\)(.+?)(\b)|}$" 

并且屏幕截图中包含输入文本 (rtf)。 这是代码:

Regex reg2 = new Regex(@"\\b([\s\S]+?)\\b0"); 
MatchCollection matches = reg2.Matches(text); 
 
foreach (Match match in matches) 
{ 
    string output = reg.Replace(match.Value, ""); 
    MessageBox.Show(output); 
} 

请您参考如下方法:

您正在尝试将嵌套结构与正则表达式匹配。看看你的截图:在第一行有三个左大括号和一个右大括号,在你的第三行你有一个左大括号和两个右大括号等等。

虽然 .NET 确实提供了使用正则表达式进行嵌套模式匹配的方法,但您的正则表达式并未使用它们(这让我非常困惑您究竟希望实现什么)。

您肯定需要使用不同的方式来解析 RTF 文件;遗憾的是,我不知道 .NET 库是否提供 RTF 解析器。