正则表达式-提取开头和结尾之间的字符串
正则表达式测试网站:http://tool.oschina.net/regex/
测试字符串:“开始A123结束”
提取开头和结尾之间的字符串
-
提取“开始”和“结束”之间的字符串“A123” ,使用正则表达式:
(?<=开始).*?(?=结束)
-
提取结果:A123
忽略开头的字符串
-
忽略“开始”字符串,使用正则表达式:
(?<=开始).*
-
提取结果:A123结束
忽略末尾的字符串
-
忽略“结束”字符串 ,使用正则表达式:
.*?(?=结束)
-
提取结果:开始A123
C# 代码:
private static string ExtractStringBetweenBeginAndEnd(string input, string begin, string end)
{
Regex regex = new Regex(string.Format(@"(?<={0}).*?(?={1})", begin, end));
foreach (Match match in regex.Matches(input))
{
if (match != null && !string.IsNullOrEmpty(match.Value))
{
return match.Value;
}
}
return string.Empty;
}
测试:
string test = "开始A123结束";
Console.WriteLine(ExtractStringBetweenBeginAndEnd(test, "开始", "结束"));
其他常用正则表达式
-
不包含某些字符串,比如,不包含字符串
测试
:^((?!测试).)*$
-
不匹配整个字符串,比如,不匹配
测试
,匹配测试1
:
^((?!测试$).)*$