我正在使用RE2来匹配某些文本的正则表达式,但我正在努力提取结果。
我想要的是:
文字:“示例文字”
正则表达式:“p。* x”
从文本中提取完整的正则表达式匹配:“ple tex”
我在RE2 API中找不到支持此功能的任何功能。 PartialMatch只从正则表达式中提取组(用括号标记),但我的正则表达式来自用户,我不能强迫它们总是将它们的正则表达式包装在一个组中。我也不想手动将每个正则表达式包装在一个组中,因为这听起来不像是一个优雅的解决方案,如果用户在正则表达式的开头放置一个修饰符,它将无法工作。这似乎是非常基本的功能,所以我很惊讶没有明确的方法来做到这一点。
任何人都知道解决方案吗?
答案 0 :(得分:2)
包装整个模式是一种可行的替代方案,因为内联修饰符不必位于模式的最开头,并且当您添加一对外括号时,例如至((?s)go.*there|take.*this)
,(?s)
DOTALL修饰符仍将应用于模式中的.
。
string text;
if (RE2::PartialMatch("Sample text", "(p.*x)", &text)) {
// Put more code here
}