【问题标题】:Include Curly braces in Regular Expression to find C# Methods Definition在正则表达式中包含花括号以查找 C# 方法定义
【发布时间】:2016-04-02 16:33:26
【问题描述】:

使用这个正则表达式来查找 C# 的方法。 \w+(([^)]+))|\w+(()) 用这个我得到方法名称和参数,我需要包含字符“{”以确保这是方法的定义。 View Image

【问题讨论】:

  • 然后在表达式末尾添加\s*?{ 来匹配空格和大括号?
  • 您不能只将其附加到模式末尾,替代方案应放在非捕获组内。
  • 最后,模式是 (public|protected|internal|private)\s+?[\w+\s]+\w+(([^)]+))|(public|protected|internal |私有)\s+?[\w+\s]+\w+(())。在 c# 中,大括号是代码格式化时的中断。非常感谢!!!
  • 您是否考虑过使用编译器对象为您解析代码?你永远不会用一个简单的正则表达式来处理所有的格式化情况。

标签: c# .net regex methods definition


【解决方案1】:

您可以将模式放入非捕获组((?:...)),然后添加{

(?:\w+\(([^)]+)\)|\w+\(()\))[\p{Zs}\t]*{
^^^                        ^           ^

demo

请注意,[\p{Zs}\t]* 匹配 .NET 中的 0 个或多个水平空白符号。

另请注意,{ 不必在 .NET 正则表达式中转义。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 2016-11-30
相关资源
最近更新 更多