ASCII字符时的意外终结
Unexpected end of regex when ascii character
最小可言示例
#include<regex>
int main(){
std::regex re("\u_nic400_ib_ext_m_ib_ar_fifo_wr_mux/mux_0_1_out [0]");
}
为什么这给我一个regex_error?当ASCII字符时,我的调试器的错误消息是REGEX的意外结束,但是我只是想匹配上面的文字,但我看不到问题在哪里。
u
是Unicode代码点的逃生序列的开始,您需要逃脱。另外,[...]
是一个角色集匹配,如果您想从字面上匹配它,则需要逃脱。
std::regex re("\\u_nic400_ib_ext_m_ib_ar_fifo_wr_mux/mux_0_1_out \[0\]");
如果您使用的是C 11或更新,则在编写正则表达式时使用RAW字符串很有帮助,因此您不必加倍反弹。
std::regex re(R"(\u_nic400_ib_ext_m_ib_ar_fifo_wr_mux/mux_0_1_out [0])");
当您将Regexp创建为文字时,这一切都是相关的。如果您在运行时动态构造它,则无需将逃逸量加倍,因为您将字符串直接馈送到Regexp Engine,而是将其解析为C源代码。
相关文章:
- C++字符*缓冲区的大小
- 尝试将字符串/字符转换为整数会产生意外结果
- 字符数组到十六进制字符串的转换 - 意外输出
- 字符指针不断意外更改
- std::regex_error语言 - 意外的转义字符
- ASCII字符时的意外终结
- C++使用 std::get_time 解析 YYMMDD ISO 8601 日期字符串会得到意外结果
- 从套接字到字节数组的读取数据中的意外字符
- Cout删除了(未签名的字符)指针,给了我意外的结果
- 视觉工作室中涉及 void*、字符串和常量字符 [] 的意外重载解决方案
- 当我尝试反转字符*时出现意外输出
- C++ 代码在输出中抛出意外字符
- 从 istringstream 读取字符时出现意外行为
- 使用%c扫描整数,使用%d扫描字符:意外结果
- 写入文件时出现意外"random"字符
- 使用'b'字符的意外控制台行为
- c++中循环字符时的意外结果
- 初始化数组工作得很好,但是当试图将其打印出来时,它会打印出一个额外的列和一个意外字符
- 使用cout将数组和字符打印到屏幕时出现意外结果
- Qt C++XML意外字符