如何检索完整的正则表达式匹配从RE2
How to retrieve full regex match from RE2?
我正在使用RE2来匹配一些文本上的正则表达式,但我正在努力提取结果。
我要的是:
文字:"Sample Text "
正则表达式:"p。* x
从文本中提取完整的正则表达式匹配:"ple tex"
我在RE2 API中找不到支持此功能的任何函数。PartialMatch只从正则表达式中提取组(用括号标记),但是我的正则表达式来自用户,我不能强迫他们总是将他们的正则表达式包装在一个组中。我也不想在一个组中手动包装每个正则表达式,因为这听起来不像一个优雅的解决方案,如果用户在正则表达式的开头放一个修饰符,它将无法工作。这似乎是非常基本的功能,所以我很惊讶没有明确的方法来做到这一点。
有人知道解决这个问题的方法吗?
包装整个模式是一种有效的选择,因为内联修饰符不必在模式的最开始,当你添加一对外括号时,例如((?s)go.*there|take.*this)
, (?s)
DOTALL修饰符仍将应用于模式中的两个.
。
string text;
if (RE2::PartialMatch("Sample text", "(p.*x)", &text)) {
// Put more code here
}
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 用C++编写正则表达式的正确方法是什么?
- 如何从Stroustrup的C++书中解释这个正则表达式?
- 为什么这个正则表达式C++在括号表达式中抛出无效范围异常?
- C++:匹配正则表达式,什么是匹配?
- 如何检索完整的正则表达式匹配从RE2