修改正则表达式以包含反斜杠和单引号(以便反斜杠表现为转义字符)

modify regex to include the backslash and single quote (so that backslash behaves as an escaping character)

本文关键字:转义字符 单引号 包含反 正则表达式 修改      更新时间:2023-10-16

>我有以下字符串:

arg1('value1') arg2('value '')2') arg3('value'3')

提取值的正则表达式如下所示:

boost::regex re_arg_values("('[^']*(?:''[^']*)*')");

现在这个正则表达式无法提取"值'3"。我如何修改正则表达式以考虑括号内的 '。

仅供参考。该值可以包含空格、特殊字符以及制表符。代码在 CPP 中。

提前谢谢。

boost::regex re_arg_values( "('([^'\]|''|\.)*')" );

('')与边界匹配。

用于

匹配任何给定模式的(|)*

[^'\]匹配普通字符。

''匹配一对单引号。

\.匹配任何转义字符(包括堆叠反斜杠(。