繁体   English   中英

正则表达式-直到第一次出现字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM