次の例では、 pMAINp と最初の pMDSp の間のテキストを取得したいと考えています。正規表現には後読みと先読みがあります。
string contents = "pMAINp MAP B FlightTest Load pMDSp ZutiCarrier pWingp some pMDSp more pWingp end";
string blockMainRegex = @"(?<=pMAINp)[\s\w+]+(?=(pMDS)?)";
私が望んでいた結果は「 MAP B FlightTest Load 」でした。
しかし、それが返すものは次のとおりです。「MAP B FlightTest Load pMDSp ZutiCarrier pWingp some pMDSp more pWingp end」
ここで遅延一致を試みていることに気付くでしょう: (pMDS)? これは明らかに機能していません!これについての助けは大歓迎です。ありがとう。:-)
EDIT : おっと、探していたテキストが修正されました。
これはうまく機能します:
string blockMainRegex = @"(?<=pMAINp)[\s\w+]+?(?=pMDS)";