2010-01-12 15 views

Odpowiedz

10

Boost.Regex ma mod_s flagę do podejmowania nowych linii kropka meczu, ale nie jest częścią standardu regex TR1. (i nie jest dostępny jako rozszerzenie Microsoft, o ile widzę)

Jako obejście, można użyć [\s\S] (co oznacza, że ​​pasuje do białych spacji lub dowolnych innych niż spacje).

5

Jedną z sztuczek, których używają ludzie, jest klasa znaków zawierająca wszystko, co nie jest znakiem pustym. Znak null jest wyrażony w postaci heksadecymalnej. Wygląda to mniej więcej tak:

[^\x00]+ 
7

Ponieważ wyrażenia regularne C++ wydają się być oparte na wyrażeń regularnych ECMAScript, pomocna może być tutaj ta sama rzecz w języku JavaScript w wersji answer to the recent question.

[^] powinien działać, ale jeśli chcesz czegoś bardziej przejrzystego i mniej hackish, możesz spróbować (.|\n).

1

Możesz przełączyć się na smak zwykłego wyrażenia bez ECMA (istnieje kilka flag kontrolujących smak regext). Każde odwołanie do POSIX powinno, jeśli dobrze pamiętam, dopasować znak nowej linii do ..

Powiązane problemy