在以下示例中,我想检索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)?这显然是行不通的!对此的任何帮助将不胜感激。谢谢。:-)
编辑:哎呀,寻求的文本已被更正。
这很好用:
string blockMainRegex = @"(?<=pMAINp)[\s\w+]+?(?=pMDS)";