2

我正在使用 RE2 匹配某些文本上的正则表达式,但我正在努力提取结果。

我想要的是:

文本:“示例文本”
正则表达式:“p.*x”
从文本中提取完整的正则表达式匹配:“ple tex”

我在支持此功能的 RE2 API 中找不到任何函数。PartialMatch 只从正则表达式中提取组(用括号标记),但我的正则表达式来自用户,我不能强迫他们总是将他们的正则表达式包装在一个组中。我也不想手动将每个正则表达式包装在一个组中,因为这听起来不像是一个优雅的解决方案,而且如果用户在正则表达式的开头放置一个修饰符,它也不会起作用。这似乎是非常基本的功能,所以我很惊讶没有明确的方法来做到这一点。

有谁知道解决这个问题?

4

1 回答 1

2

包装整个模式是一种可行的选择,因为内联修饰符不必位于模式的最开始,并且当您添加一对外括号时,例如 to ((?s)go.*there|take.*this)(?s)DOTALL 修饰符仍将应用于.模式中的两者。

string text; 
if (RE2::PartialMatch("Sample text", "(p.*x)", &text)) {
    // Put more code here  
}
于 2016-11-06T21:59:28.250 回答