私は正規表現を持っています: (?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
はオプションではないのに、なぜ一致するのでしょうか?