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
}