c#regex替换所有内容,包括单词base64,不使用任何内容,保留字符串的其余部分

c#regex替换所有内容,包括单词base64,不使用任何内容,保留字符串的其余部分,c#,regex,string,C#,Regex,String,我想取一个字符串,找到base64,,然后去掉它和之前的所有内容 范例 “ASDFJLKJALDF_基地64234U09092309480982340823082304802384023094” 请注意“base64”。。。我只想要“base64”之后的一切 期望值:“234u0909230948098234082304802384023094” 我在看这个代码 “string test=“你好,base64,匹配” 但这并不是我想要的。您尝试了一个与test匹配的正则表达式、一个空格和1+字字

我想取一个字符串,找到
base64,
,然后去掉它和之前的所有内容

范例

“ASDFJLKJALDF_基地64234U09092309480982340823082304802384023094”

请注意“base64”。。。我只想要“base64”之后的一切

期望值:“234u0909230948098234082304802384023094”

我在看这个代码 “string test=“你好,base64,匹配”


但这并不是我想要的。

您尝试了一个与
test
匹配的正则表达式、一个空格和1+字字符。输入字符串与之不匹配

你可以用

var results = Regex.Matches(s, @"base64,(\w+)")
    .Cast<Match>()
    .Select(m => m.Groups[1].Value)
    .ToList();
var results=Regex.Matches(s,@“base64,(\w+))
.Cast()
.Select(m=>m.Groups[1]。值)
.ToList();


模式匹配
base64、
子字符串,然后使用
(\w+)
模式将一个或多个单词字符捕获到组1中。捕获的值存储在
match.Groups[1]中。值
,与
得到的值相同。选择(m=>m.Groups[1].value)

您尝试了一个与
测试
匹配的正则表达式、一个空格和1+字字符。输入字符串与之不匹配

你可以用

var results = Regex.Matches(s, @"base64,(\w+)")
    .Cast<Match>()
    .Select(m => m.Groups[1].Value)
    .ToList();
var results=Regex.Matches(s,@“base64,(\w+))
.Cast()
.Select(m=>m.Groups[1]。值)
.ToList();

模式匹配
base64、
子字符串,然后使用
(\w+)
模式将一个或多个单词字符捕获到组1中。捕获的值存储在
match.Groups[1]中。值
,与
得到的值相同。选择(m=>m.Groups[1].value)

为什么使用正则表达式?索引+
子字符串
似乎已经足够了:

  string source = "asdfjljlkjaldf_base64,234u0909230948098234082304802384023094";

  string tag = "base64,";

  string result = source.Substring(source.IndexOf(tag) + tag.Length); 
为什么使用正则表达式?
IndexOf
+
Substring
似乎已经足够了:

  string source = "asdfjljlkjaldf_base64,234u0909230948098234082304802384023094";

  string tag = "base64,";

  string result = source.Substring(source.IndexOf(tag) + tag.Length); 

其他一些答案很好。下面是一个非常简单的正则表达式

string yourData = "asdfjljlkjaldf_base64,234u0909230948098234082304802384023094";
var newString = Regex.Replace(yourData, "^.*base64,", "");

其他一些答案很好。下面是一个非常简单的正则表达式

string yourData = "asdfjljlkjaldf_base64,234u0909230948098234082304802384023094";
var newString = Regex.Replace(yourData, "^.*base64,", "");

类似于?您在代码-
Regex.Matches(base64,regexStrTest)
中有一个额外的逗号。此外,您需要使用
@“base64,(\w+)
Regex和grab
match.Groups[1]。Value
。您的字符串真的包含多个预期的子字符串吗?类似于?您在代码-
Regex.Matches中有一个额外的逗号(base64,regexStrTest)
。此外,您需要使用
@“base64,(\w+)
regex和grab
match.Groups[1].Value
。您的字符串是否真的包含多个预期的子字符串?如果存在多个预期的匹配项怎么办?并且
base64
大小写使用不一致?并且在
base64
之后有像
?%$^&
这样的字符?@Wiktor Stribiżew:这些情况(许多匹配项和不正确的字符)应该在问题中指定。在当前情况下,正如所解释的“查找
base64,
,并除去它和它之前的所有内容”,然后“…注意
“base64,
…我只想要
“base64,
之后的所有内容”。。。“这是一个可能的解决方案。不,在当前问题中有
Regex.Matches
-这提取了模式的多个匹配项。OP预期会有多个结果。@WiktorStribiżew:这些约束都不在问题中。@Douglas:看看代码。这在代码中(更准确地说,
Regex.Matches
)。如果有多个预期匹配项?并且不一致地使用了
base64
大小写?并且
base64
之后有像
?%$^&
这样的字符?@Wiktor Stribiżew:这些情况(许多匹配项和不正确的字符)应该在问题中指定。在当前情况下,正如所解释的那样“找到
base64,
并除去它和它之前的所有内容”,然后“…注意
base64,
…我只想要
base64,
之后的所有内容。”。。。“这是一个可能的解决方案。不,在当前问题中有
Regex.Matches
-这提取了模式的多个匹配项。OP预期会有多个结果。@WiktorStribiżew:这些约束都不在问题中。@Douglas:看看代码。这在代码中(更准确地说,
Regex.Matches
)。