C# Regex-直到字符串第一次出现

C# Regex-直到字符串第一次出现,c#,regex,C#,Regex,我已经尝试创建我需要的正则表达式,但即使半小时后我仍然没有成功 正则表达式应该是这样的: hey字符串后跟任何字符(以及新行),以第一个字符字符串结尾 我尝试过这样做,但是当我允许hey字符串后面的任何内容时,它会变得太贪婪,返回一个包含hey以及之后任何内容的匹配,而不是给我多个以结尾的匹配 谢谢你的帮助。这样行吗?试试这个 *?表示任意长度的非贪婪字符 hey.*?' craig1231是正确的,*后面的?使正则表达式不贪婪。我不知道你说的是什么意思: “”字符串的第一次出现 如果这应该是

我已经尝试创建我需要的正则表达式,但即使半小时后我仍然没有成功

正则表达式应该是这样的:
hey
字符串后跟任何字符(以及新行),以第一个字符
字符串结尾

我尝试过这样做,但是当我允许
hey
字符串后面的任何内容时,它会变得太贪婪,返回一个包含
hey
以及之后任何内容的匹配,而不是给我多个以
结尾的匹配


谢谢你的帮助。

这样行吗?试试这个

*?表示任意长度的非贪婪字符

hey.*?'

craig1231是正确的,
*
后面的
使正则表达式不贪婪。我不知道你说的是什么意思:

“”字符串的第一次出现

如果这应该是两个双引号,那么在C#中尝试类似的方法:


RegexOptions.Singleline
是必需的,因为您还需要捕获换行符等。

我终于创建了所需的regex:

嘿(\s)|()*


我的态度有点错误,因为如果我想找到第一个出现的东西,我应该简单地写下来,但我做到了这一点要感谢craig1231,它让我知道如何懒惰地做

什么是字符串?这应该是两个双引号吗?对不起,我的四分法不好。看一看修复-它应该是一根弦我有一个糟糕的四分之一,看修复-它是一根弦谢谢,很高兴知道这个。无论如何,我仍然需要找到字符串的第一个频率。
try {
    if (Regex.IsMatch(subjectString, "hey.*?\"\"", RegexOptions.Singleline)) {
        // Successful match
    } else {
        // Match attempt failed
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}