Forum » Programiranje » Regularni izrazi
Regularni izrazi
CHAOS ::
Kako opišem z regularnimi izrazi vse veljavne besede slovenskega jezika? Skratka, rad bi s pomočjo regularnih izrazov pobral vse veljavne besede, predloge... Zadeva je v Javi - Unicode, tako, da mora prebavit đ,ć,č,ü,... tako, da se na koncu rešim vseh ločil, števil, posebnih znakov itd...
Tnx...
Tnx...
'They have computers, and they may have other weapons of mass destruction.'
OwcA ::
Vse veljavne ali natanko vse veljavne?
Prvo je relativno preprosto:
[a-zA-Z]+
drugo je z regularnimi izrazi (praktično gledano) nemogoče.
Prvo je relativno preprosto:
[a-zA-Z]+
drugo je z regularnimi izrazi (praktično gledano) nemogoče.
Otroška radovednost - gonilo napredka.
Zgodovina sprememb…
- spremenilo: OwcA ()
CHAOS ::
Zadeva je taka, da moram iz nekega txt besedila izločit vse znake, ki niso veljavni del besed, predlogov. Ker nisem še nikoli do zdaj delal z regularnimi izrazi v bistvu ne vem kakšen bi bil lažji pristop.
1.
Lahko uporabim metodo String.split( regularni izraz ), ki mi razbije besedilo glede na ta regularni izraz. Z izrazom \s (A whitespace character: [ \t\n\x0B\f\r] ) sem že skoraj tam. Sedaj bi bilo potrebno to napisat tako, da mi delil še pri vseh ločilih, numeričnih znakih pa če se še najde kakšna izjema, da jo zajamem.
2.
Druga varianta je pa ravno obratna, da pač zapišem regularni izraz in pobiram vse veljavne besede... Ja in mislim, da izraz [a-zA-Z]+ pač ne naredi tega, ker izpusti č,š,ž... Ali se pač motim?
Če obstaja še kakšna tretja pot pa kar na dan z njo.
1.
Lahko uporabim metodo String.split( regularni izraz ), ki mi razbije besedilo glede na ta regularni izraz. Z izrazom \s (A whitespace character: [ \t\n\x0B\f\r] ) sem že skoraj tam. Sedaj bi bilo potrebno to napisat tako, da mi delil še pri vseh ločilih, numeričnih znakih pa če se še najde kakšna izjema, da jo zajamem.
2.
Druga varianta je pa ravno obratna, da pač zapišem regularni izraz in pobiram vse veljavne besede... Ja in mislim, da izraz [a-zA-Z]+ pač ne naredi tega, ker izpusti č,š,ž... Ali se pač motim?
Če obstaja še kakšna tretja pot pa kar na dan z njo.
'They have computers, and they may have other weapons of mass destruction.'
64202 ::
> Ja in mislim, da izraz [a-zA-Z]+ pač ne naredi tega, ker izpusti č,š,ž... Ali se pač motim?
To je odvisno od implementacije (koliko dobro ustreza raznim standardom o lokalizaciji etc.) in nastavitvi trenutne regije. GNU awk recimo bi ti z zgornjim izrazom sprejel krilato golazen pri slovenski regiji, pri perlu pa moras to posebej vklopiti IIRC. Drugace, [[:alpha:]]+ je verjetno boljsa pot, ce je podprto...
ps.: se vedno pa lahko na roke naredis [a-zA-Z螚ȎŠ]+
To je odvisno od implementacije (koliko dobro ustreza raznim standardom o lokalizaciji etc.) in nastavitvi trenutne regije. GNU awk recimo bi ti z zgornjim izrazom sprejel krilato golazen pri slovenski regiji, pri perlu pa moras to posebej vklopiti IIRC. Drugace, [[:alpha:]]+ je verjetno boljsa pot, ce je podprto...
ps.: se vedno pa lahko na roke naredis [a-zA-Z螚ȎŠ]+
I am NaN, I am a free man!
Zgodovina sprememb…
- spremenilo: 64202 ()
kopernik ::
Jah, kaj pa če bi split naredil tako, da bi v izrazu rekel, naj za delimiter vzame vse, kar ni črka ? npr. [^a-zA-Zščđ枊ĐČĆŽ] ? V Javi so namreč vsi stringi predstavljeni v unicode formatu, tako da bi moglo delati. Res pa je, da moraš paziti pri branju datoteke, ki je običajno zapisana v default kodni tabeli oper. sistema.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Regular expressionOddelek: Programiranje | 1896 (1323) | TESKAn |
» | Regularni izraziOddelek: Programiranje | 1649 (912) | bandek |
⊘ | python pomočOddelek: Programiranje | 3396 (2317) | Mavrik |
» | grep - čisto malo pomoči ;)Oddelek: Programiranje | 2334 (1811) | c0dehunter |