提升wregex抛出异常,正则表达式语法错误?

时间:2010-10-29 19:15:53

标签: regex visual-studio-2008 boost

我已将Boost库导入到我正在使用的.dll中。我试图使用:

解析一个字符串
boost::wregex regPlayerAtSeat(L"*Governor: Seat.?[1-9].*");

但我得到的只是'互操作服务异常。我的正则表达式的语法是错误的吗?

谢谢,R。

1 个答案:

答案 0 :(得分:1)

第一个*似乎没有任何字符。在正则表达式中,它充当quantifier,而不是UNIX命令行中的通配符,依此类推。你可能想要.*这样的东西,但这只是猜测。完整的正则表达式将如下所示:

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

.*将匹配零次或多次重复of (almost) any character(可能不是换行符,但我不知道boost正则表达式引擎的内部工作原理)。这就是你在字符串开头的意思吗?或者,由于您尚未锚定正则表达式,因此您可以使用:

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

然而,这取决于你想要匹配的内容以及它的格式。