13

I couldn't find anything regarding this on http://msdn.microsoft.com/en-us/library/bb982727.aspx.

Maybe I could use '[^]+' to match everything but that seems like a hack?

Tomerikoo
  • 18,379
  • 16
  • 47
  • 61
kliao
  • 549
  • 1
  • 6
  • 14

4 Answers4

14

Boost.Regex has a mod_s flag to make the dot match newlines, but it's not part of the TR1 regex standard. (and not available as a Microsoft extension either, as far as I can see)

As a workaround, you could use [\s\S] (which means match any whitespace or any non-whitespace).

Nicolás
  • 7,423
  • 33
  • 35
9

As C++ regular expressions appear to be based on ECMAScript regular expressions, the answer to the recent question about the same thing in JavaScript may help you.

[^] should work, but if you want something a little more clear and less hackish, you could try (.|\n).

Community
  • 1
  • 1
Brian Campbell
  • 322,767
  • 57
  • 360
  • 340
5

One trick people use is a character class containing anything that is not the null character. The null character is expressed in hex. It looks something like this:

[^\x00]+
Asaph
  • 159,146
  • 25
  • 197
  • 199
1

You can switch to a non-ECMA flavor of regular expression (there are a number of flags to control regext flavor). Any POSIX regex should, if I recall correctly, match a newline to ..

coppro
  • 14,338
  • 5
  • 58
  • 73
  • This works for example with `extended` regular expressions on Linux with gcc and on macOSX with Apple clang. Sadly, it does not work with Visual Studio, at least not with 2019 v16.8.0 that I tried. Therefore its not a generic solution. – emmenlau Nov 12 '20 at 12:45