获取两个字符串之间的结果,而不将它们包含在结果中

Getting result between two strings without including them in the result?

本文关键字:结果 包含 获取 两个 字符串 之间      更新时间:2023-10-16

我们如何只得到source=""之间的结果(在本例中:192.168.10.10:any )使用雷克斯?

<rule source="192.168.10.10:any" destination="any:any" protocol="UDP"/>

我不知道它在 c++ 上是如何写的,但正则表达式是:

<rule source="([^"]*)"

你可以做这样的事情:

source="([^"]*)"

演示

C++中,您可以使用

string s = "<rule source="192.168.10.10:any" destination="any:any" protocol="UDP"/>";
const regex r(".*"(.*)" destination.*");  
smatch sm;
string result;
if (regex_search(s, sm, r))
    result =  sm[1];

这将为您提供:

result = "192.168.10.10:any"

完整的代码和现场演示可在此处获得:http://coliru.stacked-crooked.com/a/c654bb7cf4f34b93