Odstranění závorek z textu
Když z textu chceme odstranit všechno, co je v závorkách, můžeme použít jednoduchý regulární výraz \([^)]*\). Pokud však do sebe závorky mohou být vnořené, je situace složitější a musíme sáhnout k rekurzivním regulárním výrazům, konkrétně k \(((?>[^()]+)|(?R))*\). (?R) rekurzivně vkládá celý regulární výraz, do seznamu přeskakovaných znaků přibyla otevírací závorka (protože tu chceme ošetřit rekurzí) a v nerekurzivní větvi je použit výraz (?>, který zajistí, že v případě neúspěchu se nebude zkoušet použít rekurze na všech možných místech.
S čím uvedený výraz nepočítá, jsou smajlíky ;-).
Jakub Vrána, Řešení problému
Diskuse
vfb:
pokud mohu o něco poprosit, tak nebylo by "ošetření" textu před vložením do databáze na záměnu špatných uvozovek typografickými a na přidání nezalomitelné mezery za jednopísmenou předložku?
FOUS:
SKoBA je jednoduchý program, který se snaží odstraňovat z HTML souborů nejběžnější typografické chyby. Jeho činnost spočívá ve vkládání mezer se zakázaným zlomem řádku na vhodná místa a nahrazování některých pomlček spojovníky. Aktuální verzi hledejte na adrese http://www.kii.vslib.cz/~satrapa/sw/skoba/.FOUS:
Pan Satrapa to má v Perlu - ze zdrojáků už si potřebné regulární výrazy vytáhnete :)
Jakub Vrána
:
Pokud to jde, doporučil bych použít Texy.
pletule:
moc sem to nepochopilA A KDYŽ SEM SI TO PŘEČETLA TAK TO ŠLO JAK PO MÁSLE....Diskuse je zrušena z důvodu spamu.

