Ahoj,
často v textu hledám pomocí regulárních výrazů (používám Qt a QRegExp).
Úloha:
Mám řetězec např. "Window" potřebuji vyhledat všechny výskyty tohoto řetězce, kromě těch výskytů, které obsahují řetězec např. "BlueWindow".
Druhý řetězec vždy obsahuje hledaný řetězec a je známý při tvorbě reg. výrazu. Hledaný řetězec se může vyskytovat na začátku či na konci slova či řádku, může být i samostatné slovo.
Takže příklady:
"mWindowQ" nalezne
"mBlueWindowQ" nenalezne
Potřebuji to pro nahrazování či jiné zpracování textu ve zdrojových souborech. To pak probíhá v několika krocích. Čas od času se mi stane, že do dávky souborů pro nahrazení textu se mi dostane i soubor, který má text již nahrazený. Dosud jsem to prováděl na dva kroky (je to dost pracné):
1. krok - nový řetězec neobsahuje původní řetězec, nahrazení nalezeného řetězce novým.
2. krok - nahrazení nového řetězce na cílovým řetězcem.
Protože dnes nemám nějak inspiraci, budu vděčný za každou radu.
Zatím mám jedinou ideu provést to co provádím ručně softwarově.
1. sestavit náhodný řetězec, zjistit jestli náhodou není již obsažený v textu.
2. náhodným řetězcem nahradit všechny výskyty řetězce "BlueWindow"
3. provést vyhledání a zpracování řetězce "Window".
4. zpět nahradit náhodný řeťězec řetězcem "BlueWindow".
Pokud někoho z vás nenapadne inteligentní regulární výraz, budu to pak nucen takto provést.