Wyrażenie regularne.

0

Witam

Próbuję rozgryźć problem wyrażenia regularnego, które ma obejmować wszystkie wyrazy, oprócz wyrazów które zawierają konkretny podciąg, np. wszystkie wyrazy bez słowa "cos".
Nie chodzi mi o rozwiązanie w stylu, wyrażenie które akceptuje wyrazy z "cos" i to zanegować w programie. Chodzi mi o negacje w samym wyrażeniu.

0

Ściągnij program do testowania wyrażeń regularnych i kombinuj :)

0

\b((?!cos)\w)*\b

0
Rev napisał(a):

\b((?!cos)\w)*\b

Nie przechodzi to u mnie, do wyrażeń regularnych w C++ używam boost/regex.

0
#include <iostream>
#include <boost\regex.hpp>

int main()
{
	using namespace std;
	using namespace boost;

	string text = "jakies costam tam trolocostrolo lolo wyrazy 123costam";
	regex expression("\\b((?!cos)\\w)*\\b");

	sregex_iterator begin(text.cbegin(), text.cend(), expression), end;
	for_each(begin, end, [](const smatch& result) -> bool
	{
		string match = result.str();

		if(match.length() > 0)
			cout << match << "\n";

		return true;
	});
}

Wynik:

jakies
tam
lolo
wyrazy

1 użytkowników online, w tym zalogowanych: 0, gości: 1