我有正则表达式: (?ms)(?<attribute>\[.+?\]|public|private|\s)+?class
我有文字:
[attribute]
public int a;
[attribute C]
[attribute B]
public class Test{
}
我想知道为什么我发布的正则表达式匹配:
[attribute]
public int a;
[attribute C]
[attribute B]
public class
我认为它应该匹配:
[attribute C]
[attribute B]
public class
如果我错了,请纠正我。我认为应该读取正则表达式的方式是:
查找属性( [ some attribute ] )或公共关键字或私有关键字或空格。
所以首先正则表达式引擎应该匹配 [attribute],然后是 '\n'(新行),然后是public
关键字。在这些之后,关键字int
不是一个选项,那么它为什么匹配它呢?