1

我需要一个正则表达式来从此字符串中获取 MyName ( MyName 可能包含除 " 之外的任何字符):

lablabla name="MyName" user="MyUser" lablabla

我用了:

boost::regex reg(".*name=\"(?<action>.*)\"\\s.*", boost::regex::perl);

但它返回:

MyName" user="MyUser
4

1 回答 1

3

怎么样:

boost::regex reg(".*name=\"(?<action>.*?)\"\\s.*", boost::regex::perl);

这使它变得不贪心;或者:

boost::regex reg(".*name=\"(?<action>[^\"]*)\"\\s.*", boost::regex::perl);

它明确指定操作不能包含双引号。

于 2012-11-29T09:38:11.390 回答