我在第一次尝试使用 re2 时就在此处编写了此代码:
string s;
RE2::PartialMatch(".+\\.com","http://example.com/", &s);
它不起作用;s
不会改变并保持空白。我可以将第一行更改string s = "foo";
为第二行运行后,s
将保持为"foo"
.
我究竟做错了什么?
您对 的使用有两点错误PartialMatch
:
这应该有效:
RE2::PartialMatch("http://example.com/", "(.+\\.com)", &s);
或者,如果您不希望 s 包含“.com”部分:
RE2::PartialMatch("http://example.com/", "(.+)\\.com", &s);
尝试翻转它们RE2::PartialMatch("http://example.com/","example", &s);
它应该在字符串中为您提供“示例”。第一个参数是您要搜索的字符串,第二个参数是模式。
.\\.com
它捕获的正则表达式是错误的anySymbol\.com
,您需要相同的/.+\.com