C# C的正则表达式不能正常工作,我也想要它
我有这样一个输入字符串: \pard\nowidctlpar\qj\b0\scap就是这样 协议\scaps0已订立并签署 直到今天,\{DATEAGREEMENT\}, 由[删除] \ldblquote[已删除]\rdblquote及其 继承人和/或受让人,以及 地址[已删除],以及 \{txtbl\},\ldblquote 原告个人, 关于uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu, \{TXT原告律师\}, \原告 律师 \{TXT律师事务所\}。\par 我想用正则表达式做一些解析 这是我正在使用的代码:C# C的正则表达式不能正常工作,我也想要它,c#,regex,C#,Regex,我有这样一个输入字符串: \pard\nowidctlpar\qj\b0\scap就是这样 协议\scaps0已订立并签署 直到今天,\{DATEAGREEMENT\}, 由[删除] \ldblquote[已删除]\rdblquote及其 继承人和/或受让人,以及 地址[已删除],以及 \{txtbl\},\ldblquote 原告个人, 关于uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
temp = Regex.Replace(temp, @"\\{#.*#\\}", "_____");
唯一的问题是它匹配最宽的集合,也就是说,它去掉了整个段落,因为段落以\}结尾,如何匹配每个组?也就是说,本段应该匹配4次,而不是一次
temp = Regex.Replace(temp, @"\\{#.*?#\\}", "_____");
将“?”附加到“*”将执行非贪婪搜索。您最初的正则表达式执行贪婪搜索,因此它将查找可能的最大匹配项
将“?”附加到“*”将执行非贪婪搜索。您最初的正则表达式执行贪婪搜索,因此它将查找可能的最大匹配项。我记得,添加了一个?将运算符从贪婪更改为非贪婪,请尝试以下操作:
temp = Regex.Replace(temp, @"\\{#.*?#\\}", "_____");
我记得,添加一个?将运算符从贪婪更改为非贪婪,请尝试以下操作:
temp = Regex.Replace(temp, @"\\{#.*?#\\}", "_____");
你试过让它成为一个不贪婪的匹配吗
temp = Regex.Replace(temp, @"\\{#.*?#\\}", "_____");
你试过让它成为一个不贪婪的匹配吗
temp = Regex.Replace(temp, @"\\{#.*?#\\}", "_____");
您正在寻找惰性评估:
temp = Regex.Replace(temp, @"\\{#.*?#\\}", "_____");
可以这样做您正在寻找惰性评估:
temp = Regex.Replace(temp, @"\\{#.*?#\\}", "_____");
可以吗