无法匹配字符串中的模式

时间:2017-10-13 11:45:31

标签: c# regex

我有一个字符串,我需要从中获取{{...}}模式的字符串,并用评估值替换它们。

注意:有些方法会放在这个{{abc();}}中。我需要评估这些方法并将其替换为相应的输出。

string abc="/*html$**{{abcd();}}**//*dhf//**{{ef();}}** ";
string pattern="*{{*}}*";
MatchCollection collection = Regex.Matches(abc, pattern);

我尝试使用这种模式。但它抛出了以下异常。

  

“{”解析\“ {{}} * \” - 量词{x,y}不执行任何操作。“}”

1 个答案:

答案 0 :(得分:0)

好的,你肯定需要了解有关正则表达式模式的更多信息,因为你的模式甚至无法编译......

对于初学者,此模式{{[a-z]*\(\);}}将为您提供{{abc();}} 这很简单,因为您需要逃脱的唯一字符是()
这些是正则表达式的一些特殊字符,它将模式分成“捕获组”,因此如果要匹配它们,则需要通过将\放在它们前面来逃避它们。例如*也是如此。

使用像https://regex101.com/这样的网站来测试正则表达式(?)并根据您的特定需求开发我的给定模式。

该网站提供了很多关于模式中每个符号如何工作的解释,甚至可以在模式字符串出现错误时向您显示。