Regulární výraz - problém   otázka

Regulární výrazy

Dobrý den,

už mnoho dní si marně lámu hlavu s tím, jak udělat jeden snadný regulární výraz, který vybere všechen text co je uzavřený v hranatých závorkách.

Copak o to, třeba výraz [\.*\] takový text dokáže najít, ale problém je, že v tom textu jsou zalomené řádky a stím si ten můj výraz neporadí.

Ten text bych potom vyfiltroval zřejmě v program Actual Search & Replace.

Mohl by mi prosím někdo s tím pomoc? Jsem už fakt zoufalý.

Ukázkový text je zde:

Soldier: - Decurion! – Sir!

[The camera then shows Rasler with his sword and Basch with his bow and arrow

riding in the Chocobos and killing off many soldiers in the process.]

Basch: The fortress is lost! We must withdraw!

Rasler: (stabs and kills an enemy with his sword) No! The paling still stands!

[Then, the camera shows a blue orb from the air and then, in the paling with

the flaming center light stone, the priests stands around and tries to make

their moves.]

Priest: Shield beyond sight, ne’er failing light--

[Suddenly, the camera shows the knight soldiers who charges towards the priests

and kills all of them. As the war continues…]

Díky moc. Pilda

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Oprava:

ten můj výraz co funguje pouze u jednoho řádku je \[.*\]

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To, jestli se oddělují řádky nebo, zda se pracuje s celým řetězcem najednou lze ovlivnit při vytváření regulárního výrazu dalším parametrem RegexOptions, vás bude zajímat Singleline a Multiline přepínač.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nj, ale to bych ale musel vyfiltrovat v nějakém vlastním prográmku, který bych si napsal, ne? Bohužel aplikace neprogramuji, chci k tomu použít ten program.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A co je to za program jste nám neřekl. Bohužel každý program si to dělá jak chce, takže bez toho se dál nehneme.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ale řekl,

chtěl jsem použít program Actual Search & Replace, ale je mi to jedno jaký. Pokud víte o nějakém co to zvládne, použiji ten. ;)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Třeba Visual Studio?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud mi napíšete krok po kroku kam co napsat, tak není problém. V žádném vývojovém prostředí jsem nikdy nepracoval a tudíž se obávám, že to pro mě nebude tak snadné jako pracovat s programem co je k tomu určený. ;)

Nebo pokud by to bylo pro vás lepší, tak bych vám mohl poslat celý ten text na email a vy by jste mi potom poslal ten výsledek. Ale radši bych to sám uměl, abych tu nemusel v případě potřeby otravovat znovu.

Díky za snah pomoct.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No, instalovat Visual Studio jen kvůli tomu se asi nevyplatí. Aplikaci Actual Search and Replace neznám, takže s ní asi neporadím.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bohužel mně nic jiného nezbývá. Ptal jsem se na to na hodně místech a nikdo mi nikde nebyl schopný poradit. Netušil jsem, že to bude takový problém.

To Visual Studio mám už nainstalované. Je to 2008ka. :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak si v něm otevřete daný soubor, zmáčkněte Ctrl-H, rozklikněte Find options a vyberte Regular Expression a nahraďte

\[(.|\n)@\]

za prázdný řetězec.

Hranatá závorka je spec. znak, tak se musí escapovat, uvnitř může být tečka nebo \n (tečka je jakýkoliv znak kromě konce řádku), \n je jakýkoliv konec řádku (vezme to CR, LF nebo CRLF) a místo klasického *?, které označuje non-greedy hvězdičku (tedy minimální možný počet opakování - jenom hvězdička by sežrala všed až do poslední ] v celém textu), má Visual Studio @ (důvod, proč je to takhle, nechápu, ale je to tak).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Paráda, jde to. Děkuji moc. Ani nevíte jak jste mi pomohl. :) Máte to u mě. Mějte se hezky. Pilda

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback