Re2是否使用字符串大小或null终止

Does Re2 use string size or null termination?

本文关键字:null 终止 字符串 是否 Re2      更新时间:2023-10-16

标题就差不多了。如果一个标准的c++字符串与UTF-8字符没有零字节扫描终止在字符串的结束由它的大小定义?相反,如果字符串有一个零字节,扫描是停止在该字节,还是继续到字符串的整个长度?我看了Re2.h文件,它似乎没有解决这个问题。

包含UTF-8字符的std::string不能有0字节的文本部分
(仅作为终止),因为UTF-8在任何地方都不允许0。

如果你使用的是c++ 11兼容的东西,一个终止的0是保证的
不管你用的是data()还是c_str()。数据是原始数据,所以…)。
见http://en.cppreference.com/w/cpp/string/basic_string/data
或标准(21.4.7.1/1等)。
=>字符串的处理将在0

处停止。

到Re2的接口似乎使用了std::string,这几乎当然意味着它使用了开头和结尾字符串,空字符和其他字符一样。(毕竟,它们是用Unicode和UTF-8定义的。)的当然,''在类别控制字符中,所以它不会匹配像"pL"这样的东西(它匹配一个字母)。但它应该匹配"pC"。当然,'u0000'和其他null字符的表示