Forum » Programiranje » Regular expression
Regular expression
Klemenn ::
takega...da bo moj textbox obvezno vseboval
(1...več črk) (presledek) (1...več črk)
a bo nekaj z + \s?
(1...več črk) (presledek) (1...več črk)
a bo nekaj z + \s?
kunigunda ::
[a-zA-Z]+\s[a-zA-Z]+
oz
[a-zA-Z]+\s+[a-zA-Z]+ (en ali vec presledkov
ce si pod "crk" mislil le znakov (non space) potem pa
\S+\s\S+
oz
\S+\s+\S+
oz
[a-zA-Z]+\s+[a-zA-Z]+ (en ali vec presledkov
ce si pod "crk" mislil le znakov (non space) potem pa
\S+\s\S+
oz
\S+\s+\S+
Spura ::
Drugace se za crke v Javi uporablja
\p{L} za crko ne pa [a-zA-Z], ker prvi dovoljuje vse unicode crke, drugi pa samo anglesko abecedo.
\p{L} za crko ne pa [a-zA-Z], ker prvi dovoljuje vse unicode crke, drugi pa samo anglesko abecedo.
kunigunda ::
Sicer jest sm anti-sumnik in jih ne uporabljam, je pa fajn informacija, nism vedu da so clo to dostukal v regex :)
Spura ::
Jst tut ne uporabljam sumnikov, ampak jih uporabniki mojih aplikacij. Ali pa recimo, da imas podatke o neki nemski firmi in ti bi rad besede, notr je pa umlaut. Itd... moras delat s tem.
S temi unicodi je veliko "trikov".
Recimo malo znano dejstvo je, da je $ pravilno ime java spremenljivke. Se manj znano dejstvo je pa, da je katerikoli currency symbol pravilno ime. Zank za evro je pravilno ime.
S temi unicodi je veliko "trikov".
Recimo malo znano dejstvo je, da je $ pravilno ime java spremenljivke. Se manj znano dejstvo je pa, da je katerikoli currency symbol pravilno ime. Zank za evro je pravilno ime.
kunigunda ::
K sreci ze dolgo ne delam vec GUIjev za koncne uporabnike, serverji ki jih delam so pa le za anglesko sintakso, tko da mi ni treba se na kljukce paziti :)
Za $ pa vem ja, sam mi ful grdo zgleda ce bi uporablju. Bog ne daj da bi se kaj drugega.
Za $ pa vem ja, sam mi ful grdo zgleda ce bi uporablju. Bog ne daj da bi se kaj drugega.
Klemenn ::
kaj pa
multiline textbox z max dolžine 100
zaenkrat sem imel
vendar to nekak ne zastopi, da breakline\newline ne pomeni znakov za celotno dolžino vrstice
any suggestions?
multiline textbox z max dolžine 100
zaenkrat sem imel
ValidationExpression="^.{{0,100}$"
vendar to nekak ne zastopi, da breakline\newline ne pomeni znakov za celotno dolžino vrstice
any suggestions?
Spura ::
Vklopi multiline mode. Sej bi ti povedu kako se to naredi samo delas v C# ki je kurac od ovce glede dokumentacije. V 15 minutah mi ni ratal najdet opisa regularnih izrazov na MSDN.
Zgodovina sprememb…
- spremenil: Spura ()
MrBrdo ::
v C# ki je kurac od ovce glede dokumentacije
Lol to pa definitivno ni res.
Klemenn: Btw ne vem sicer kako je v C#, ampak lahko imaš problem z ^ in $, ker načeloma pomenita začetek/konec vrstice, če si mislil začetek/konec stringa uporabi namesto tega \A in \Z ali \z... Ker v nekaterih implementacijah $ matcha konec vrstice v nekaterih pa konec stringa. Ne vem pa ali ma pri C# to kej veze v tvojem primeru. V Ruby bi bil narobe tak expression, bi moral \A in \z uporabit.
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
fx ::
V C# imam niz ki je sestavljen z zanki 0-9A-Fa-f.
Primer:
Če uporabim navedeni niz v kodi
Dobim ven:
Kar je v redu in super.
Problem se mi pojavi, na primer če dobim tako obliko niza: 033E0A0A0A373839373839370A. V tem primeru pa trenutno moje pravilo da se vsaki niz zapisan konča na 0A. Prednost šifre 03 je v tem da je dolžina niza vedno ista (datum) (03)3E0A(0A) torej, me zanima kako lahko naredim da regex upošteva do izjemo?
Hvala.
Primer:
043133343830313133310A004D656469636F7020642E6F2E6F2E0A01313032313031320A023133343830313133310A033E820A063937383839373839370A093E880A073938370A0839383738393738390A053532484d4730312d54564c323336330A0A373839373839370A
Če uporabim navedeni niz v kodi
foreach (string result in Regex.Split(input, "[0-9A-Fa-f]0A")){ textBox2.AppendText(string.Format("'{0}'{1}", result,System.Environment.NewLine)); }
Dobim ven:
'0431333438303131333' '004D656469636F7020642E6F2E6F2' '013130323130313' '0231333438303131333' '033E8' '0639373838393738393' '093E8' '0739383' '08393837383937383' '053532484d4730312d54564c3233363' '0A3738393738393' ''
Kar je v redu in super.
Problem se mi pojavi, na primer če dobim tako obliko niza: 033E0A0A0A373839373839370A. V tem primeru pa trenutno moje pravilo da se vsaki niz zapisan konča na 0A. Prednost šifre 03 je v tem da je dolžina niza vedno ista (datum) (03)3E0A(0A) torej, me zanima kako lahko naredim da regex upošteva do izjemo?
Hvala.
Lep pozdrav,
fx
fx
fx ::
Sedaj sem tudi ugotovil da mi "[0-9A-Fa-f]0A" ne dela v redu, namreč dobim tole:
Moral pa bi
Pri drugem primeru pa bi rad tole dobil ven :
033E0A0A0A373839373839370A ->
033E0A0A
0A37383937383937
Ključ po katerem delam je sledeči:
(šifra) - dolžina dveh znakov (00-FF)
(vsebina) - poljubna dolžina
(konec) - v mojem primeru je to 0A niz - ampak slednji niz je lahko tudi šifra, saj to ko pretvorim v decimalno je to številka 10.
Hvala,
'0431333438303131333' '004D656469636F7020642E6F2E6F2' '013130323130313' '0231333438303131333' '033E8' '0639373838393738393' '093E8' '0739383' '08393837383937383' '053532484d4730312d54564c3233363' '0A3738393738393'
Moral pa bi
'04313334383031313331' '004D656469636F7020642E6F2E6F2E' '0131303231303132' '02313334383031313331' '033E82' '06393738383937383937' '093E88' '07393837' '083938373839373839' '053532484d4730312d54564c32333633' '0A37383937383937'Odreže zadnji znak - ne vem zakaj temu tako (sem šele včeraj se začel učit uporabo regular expression).
Pri drugem primeru pa bi rad tole dobil ven :
033E0A0A0A373839373839370A ->
033E0A0A
0A37383937383937
Ključ po katerem delam je sledeči:
(šifra) - dolžina dveh znakov (00-FF)
(vsebina) - poljubna dolžina
(konec) - v mojem primeru je to 0A niz - ampak slednji niz je lahko tudi šifra, saj to ko pretvorim v decimalno je to številka 10.
Hvala,
fx ::
Vse skupaj sem rešil :) za sebe menim da bi lahko še boljše rešilo se. Ampak kar sem imel pred tem za funkcije je ta boljša.
Če ima kdo bolši predlog ga bom vesel.
Hvala.
int i = 0; List<string> list = new List<string>(Regex.Split(input, "(?<=0A)")); foreach(string result in list){ if((list[i].Substring(0,2)=="03" && list[i].Length<=6)||(list[i]=="0A")){ list[i]+= list[(i+1)]; list.RemoveAt((i+1)); } textBox2.AppendText(string.Format("({2})'{0}'{1}", list[i], System.Environment.NewLine, i)); i++; }
Če ima kdo bolši predlog ga bom vesel.
Hvala.
TESKAn ::
Predlog - če še nimaš, si dobi kako orodje za izdelavo regularnih izrazov. Sam uporabljam expresso (link) in je v precejšnjo pomoč.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.
ki jo je prav v ta namen nosil s seboj.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java] While zankaOddelek: Programiranje | 2383 (1966) | kunigunda |
» | JavaScriptOddelek: Programiranje | 975 (903) | snooze77 |
» | delo z niziOddelek: Programiranje | 2991 (2535) | tx-z |
» | BOOT cdOddelek: Pomoč in nasveti | 1696 (1524) | StratOS |