Odstranění závorek z textu
Školení, která pořádám
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 ;-).
Diskuse
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 :)
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.