代码之家  ›  专栏  ›  技术社区  ›  flavour404

boost wregex引发异常,regex语法错误?

  •  0
  • flavour404  · 技术社区  · 15 年前

    我已将Boost库导入到正在使用的.dll中。我尝试使用以下方法分析字符串:

    boost::wregex regPlayerAtSeat(L"*Governor: Seat.?[1-9].*");
    

    但我得到的只是一个“interop服务异常”。我的regex语法错误吗?

    谢谢,R.

    1 回复  |  直到 15 年前
        1
  •  1
  •   eldarerathis sreeji    15 年前

    第一 * 之前似乎没有任何字符。在regex中,它充当 quantifier ,而不是像在Unix命令行等中那样的通配符。你可能想要类似的东西 .* 在它的位置上,但这只是一个猜测。完整的regex如下所示:

    boost::wregex regPlayerAtSeat(L".*Governor: Seat.?[1-9].*");
    

    * 将匹配零次或更多次重复 of (almost) any character (可能不是换行,但我不知道Boost Regex引擎的内部工作原理)。这就是你在开始时想要的吗?或者,由于您还没有锚定regex,您可能只需要使用:

    boost::wregex regPlayerAtSeat(L"Governor: Seat.?[1-9]");
    

    然而,这将取决于您试图匹配的内容和格式。