[英]Regex - Until the first occurrence of a string
我曾尝试创建所需的正则表达式,但即使半小时后,我仍然没有成功。
正则表达式应如下所示: hey
字符串后跟ANY字符(也包括新行),以</div>
字符串的第一次出现作为结尾。
我尝试这样做,但是当我在hey
字符串之后允许任何内容时,它变得过于贪婪,并返回一个包含hey
及其之后内容的匹配项,而不是给我多个以</div>
结尾的匹配项。
谢谢您的帮助。
这行得通吗? 试试看。
。*? 表示不贪心任何长度的字符
hey.*?'
craig1231是正确的?
*
使正则表达式为非贪婪。 我不确定您的意思是:
字符串的第一次出现
如果应该使用2个双引号,请尝试在C#中执行以下操作:
try {
if (Regex.IsMatch(subjectString, "hey.*?\"\"", RegexOptions.Singleline)) {
// Successful match
} else {
// Match attempt failed
}
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
RegexOptions.Singleline
是必需的,因为您还希望捕获换行符等。
我终于设法创建了所需的正则表达式:
嘿嘿((\\ S)|()。)*?
我的态度有点不对,因为如果我想找到某些东西的第一次出现,我应该简单地写它,但是我要感谢craig1231,让我知道如何懒惰地做它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.