我的正则表达式在线测试但不在我的c#app中

时间:2017-06-29 09:39:54

标签: c# regex xamarin

我有一个正则表达式模式(?<=base64,)(.*?)(?=")来获取部分文本。 此模式works in an online tester web site,但在我的C#应用​​中始终在IsMatch()中返回false并在Match()中返回空。

string imga = _blogPosts[position].PostImage;
if (_blogPosts[position].PostImage !=null)
{
    Regex re2 = new Regex(@"(?<=base64,)(.*?)(?="")");
    bool m = re2.IsMatch(imga); // always retun false
}

任何人都可以帮助我吗? reg pic

1 个答案:

答案 0 :(得分:0)

您复制到RegexStorm的只是调试器行数据。您的字符串中没有实际的"

请注意,使用正则表达式执行此任务是没有意义的,您也可以使用

if (imga !=null && imga.Contains("base64,"))  { /* yes */ }

如果您需要在base64,子字符串后实际获取所有非空白字符,则可以使用

Regex re2 = new Regex(@"base64,(\S+)");
Match m = re2.Match(imga);
string result = "";
if (m.Success)
{
    result = m.Groups[1].Value;
} 

请参阅regex demo used above(\S+)base64,个子字符串后的任何一个或多个非空格字符中捕获到第1组。

但你真的可以使用Substring

来获得它
string result = "";
if (imga !=null && imga.Contains("base64,")) 
{
    result = imga.Substring(imga.IndexOf("base64,")+7);
}