c# Regex 前瞻失败

标签 c# regex

我正在尝试使用 C# 中的 RegEx 从电子邮件中解析边界标记。

数据采用以下格式之一:

 boundary=\"--==_mimepart_5c1ceb26ac136_211222489141168988\";
 boundary=\"----------=_1545338372-18873-1534\"

使用:

string pattern = "(-+.+)";
Regex regex = new Regex(pattern);
string boundary = (from x in email where x.Contains("boundary=\"") select x).FirstOrDefault();
MatchCollection matches = regex.Matches(boundary);

我得到的结果是:

--==_mimepart_5c1ceb26ac136_211222489141168988\";

如果我将模式更改为:

string pattern = "(-+.+)(?=\\\\)";

我得到零匹配。我也试过 "(-+.+)(\\)"并且仍然得到零匹配。使用 Regexer 和 Regex Storm,该模式准确地捕获了我需要的内容。谁能帮我弄清楚为什么会失败?

最佳答案

你可以匹配你需要的字符串

var pattern = "-[^\"]+";

它将匹配 -,然后匹配 " 以外的 1 个或多个字符。

参见 .NET regex demo

关于c# Regex 前瞻失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891915/

相关文章:

regex - Neo4j 正则表达式字符串匹配未返回预期结果

javascript - 如何像 mysql 一样从 jQuery 中的 json 或数组数据搜索名称

java - 从字符串中删除字符 '\u202A' 8234

python - 如何忽略单词之间的空格而不是其他字符?

c# - 获取表达式树中方法参数的值

c# - 如何将媒体属性添加到 ASP.NET WebResource.axd Http 处理程序的 CSS LINK html 标记

c# - 如何将枚举集合发送到 WCF 服务

c# - VS 2010 Visual C# - 在同一解决方案中引用其他项目

c# - 使用 SQLite-Net Extensions 和 OneToMany 关系

javascript - 正则表达式表情符号替换字符串中的 url 失败