2016-02-20 51 views
0

你好,这是我的字符串平等的POSIX正则表达式C++

Data1 = "value1"; 
Data2 = "value2"; 
Data3 = "value3"; 

在PHP我使用这个正则表达式

preg_match("/\h*(.*?)\h*[=]\h*[\"](.*?)[\"]\h*[;]/mis", $input_line, $output_array); 

,并得到3结果

Data1 = "value1"; 
Data1 
Value1 
... 
... 

现在我想在C++ visual studio中使用正则表达式来做这样的事情(我在php中完成的)。我知道我们找不到

\h* 

在c + +正则表达式所以请告诉我什么正则表达式我必须使用c + +?

+1

我不知道'C++',但你可以用'*'尝试简单的空格字符,或者也可以使用标签''\ t *''。请参阅https://regex101.com/r/zI8vS3/2和https://regex101.com/r/zI8vS3/1 – chris85

+1

'[[:blank:]] *'应该是您要查找的内容。如果你想自己定义'\ h',你也可以用'regex_traits'添加你自己的[shorthands](http://en.cppreference.com/w/cpp/regex/regex_traits/lookup_classname)。 – user657267

回答

1

\h匹配水平空白。
它包括制表和Unicode空间。它与[\t\p{Zs}]

如果你不想匹配所有的Unicode空间,你可以简单地使用[\t ]匹配表和简单的空格。