需要匹配句子的前半部分,直到某个给定的单词。 但是,如果该单词是可选的,那么我希望匹配整个句子。例如:
我有一个带有一个从句的句子。
我有一个句子,我喜欢它。
在第一种情况下,我想要 "我有一个句子"
。 在第二种情况下,我想要"我有一个句子,我喜欢它。"
使用前瞻可以得到第一种情况,但是一旦我试图使其可选,以涵盖第二种情况,我就会得到整个第一句话。我尝试过让表达式懒惰...不起作用。
可以解决第一种情况的代码:
var regEx = new Regex(@".*(?=with)");
string matchstr = @"I have a sentence with a clause I don't want";
if (regEx.IsMatch(matchstr)) {
Console.WriteLine(regEx.Match(matchstr).Captures[0].Value);
Console.WriteLine("Matched!");
}
else {
Console.WriteLine("Not Matched : (");
}
我希望能够使用以下表达式:
我希望这个表达式能够正常工作:
var regEx = new Regex(@".*(?=with)?");
有什么建议吗?