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中。特例,事实上不是。但我倾向于避开特殊角色以避免混淆。那你就有办法了!