C# RegEx获取两个字符串之间的文本

C# RegEx获取两个字符串之间的文本,c#,regex,C#,Regex,我有以下案文: {FFFFFF}Fe8uOywfW {EE9911}will {FFFFFF}CV36LXRa {EE9911}will {FFFFFF}lqtm {EE9911}will {FFFFFF}2bCepDTJ {EE9911}will {FFFFFF}cOu1bcaRT {EE9911}will {FFFFFF}VbspL1XK {EE9911}will {FFFFFF}your name {EE9911}will {FFFFFF}NNXUELTq {EE9911}will {FF

我有以下案文:

{FFFFFF}Fe8uOywfW {EE9911}will
{FFFFFF}CV36LXRa {EE9911}will
{FFFFFF}lqtm {EE9911}will
{FFFFFF}2bCepDTJ {EE9911}will
{FFFFFF}cOu1bcaRT {EE9911}will
{FFFFFF}VbspL1XK {EE9911}will
{FFFFFF}your name {EE9911}will
{FFFFFF}NNXUELTq {EE9911}will
{FFFFFF}go to hill kide {EE9911}will
{FFFFFF}OJpbD2G1Y {EE9911}will
{FFFFFF}run noob {EE9911}will
{FFFFFF}fluffy {EE9911}will

我需要使用正则表达式获取“{ffffffff}”和“{EE9911}will”之间的所有内容,因此Fe8uOywfW、CV36LXRa等。我尝试过许多变体,但都不起作用。(使用RegexMagic构建)

没有更多关于您所做和不想匹配的内容的上下文:

\{FFFFFF\}(.*)\{EE9911\}will
例如:

var s = @"{FFFFFF}Fe8uOywfW {EE9911}will
    {FFFFFF}CV36LXRa {EE9911}will
    {FFFFFF}lqtm {EE9911}will
    {FFFFFF}2bCepDTJ {EE9911}will
    {FFFFFF}cOu1bcaRT {EE9911}will
    {FFFFFF}VbspL1XK {EE9911}will
    {FFFFFF}your name {EE9911}will
    {FFFFFF}NNXUELTq {EE9911}will
    {FFFFFF}go to hill kide {EE9911}will
    {FFFFFF}OJpbD2G1Y {EE9911}will
    {FFFFFF}run noob {EE9911}will
    {FFFFFF}fluffy {EE9911}will";

    var r = new Regex(@"\{FFFFFF\}(.*)\{EE9911\}will");
    foreach (Match m in r.Matches(s)) {
        Console.WriteLine(m.Groups[1]);   // Note: you might want to add 
                                          // some error checking here
    }
产出:

Fe8uOywfW 
CV36LXRa 
lqtm 
2bCepDTJ 
cOu1bcaRT 
VbspL1XK 
your name 
NNXUELTq 
go to hill kide 
OJpbD2G1Y 
run noob 
fluffy
参见:

({F{6}})(.+)({EE9911}will)

将它们分组并使用第二组


$2将提供所需的字符串

显示您迄今为止的尝试。
我尝试了许多变体
,例如……?{ffffffff\}[^\n\r{]+\{EE9911\}将,例如,您是否也尝试了最简单的一个?!
{FFFFFF}([^\s]+)\s*?{EE9911}它匹配所有期望的事件并捕获文本。匹配与捕获不同。现在应该与捕获的组一起工作。不幸的是,它返回与原来的相同的文本。@ USER 2229 661:您需要查看捕获组。括号是这样的!逃离卷曲括号是至关重要的吗?@ ReVo:在这个PAR中。特例,事实上不是。但我倾向于避开特殊角色以避免混淆。那你就有办法了!