我有一个正则表达式模式(?<=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
答案 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);
}