我有一个像这样的字符串
这是(锁定)项目响应(解锁)和(锁定)请求(解锁)
我需要获取前缀(Lock)和后缀(Unlock)
之间的所有字符串我需要
我在c#工作并尝试了以下
(?:(锁定))(。*)(?:(解锁))
(小于?=(锁定))(。*)(?=(解锁))
不确定放在中间部分代替(。*)
答案 0 :(得分:1)
正则表达式:(?:\(Lock\))(.*?)(?:\(Unlock\))
C#中的示例代码:
var r = new Regex(@"(?:\(Lock\))(.*?)(?:\(Unlock\))");
MatchCollection mc = r.Matches("This is a (Lock)item response(Unlock) and (Lock)request(Unlock)");
for(int i = 0; i < mc.Count; i++)
{
// Groups[0] always contains the whole match
// Groups[1] contains the capturing match
Console.WriteLine(mc[i].Groups[1].Value);
}
结果: