Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Autor | Správa |
---|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | 39 |
Zdravim, vytvoril som si regularny na zistovanie ci je string ineho formatu ako prepinac cize nema tvar -"nieco". Neviem vsak preco mi tento regular nefunguje, mozno ho mam zle napisany, neviem: [^-][a-z0-9]+ Zde kod... Kód: bool checkRegular(char* regularexp, char* argv){ regex_t regex; int reti;
reti = regcomp(®ex, regularexp, 0); if (reti) { fprintf(stderr, "Could not compile regex\n"); exit(1); } reti = regexec(®ex, argv, 0, NULL, 0); if (!reti) { printf("Match: %s\n",argv); return true; } else return false; } A tu z mainu Kód: if( checkRegular( "[^-][a-z0-9]+",argv[i]) || checkRegular("[^-][a-z0-9]+",argv[j]) ) continue; Dakujem
|
|
Registrovaný: 19.05.08 Prihlásený: 28.11.24 Príspevky: 666 Témy: 28 | 28 Bydlisko: Slovensko | |
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | 39 |
ono mne je jedno ci bude mat regularny tvar -"nieco" alebo vsetko okrem -"nieco" to by som len vymenil kedy vracat true/false lenze mi to neide, skusal som aj tvoj regulak a vymenit vo funkci true/false a hoci by mi malo do IF hodit oba hodnoty ako false aj tak mi ten IF presiel a nechapem preco, vo funkciach chyby nevidim :/ . Nemam niekde chybu v tej funkcii checkRegular? EDIT: skusil som si vypisovat kedy to prejde a kedy nie a aj pri pouziti -.+ mi neda ako zhodu napriklad s -a alebo -m. Nebude naozaj chybav tej funkcii? bohuzial ja ju uz vyse hodiny nemozem najst ak tam niekde je
|
|
Registrovaný: 07.04.12 Prihlásený: 02.06.21 Príspevky: 907 Témy: 54 | 54 |
([-][aA-zZ]*)\w+ Či rozumiem správne, čo sa snažíš vyhľadať, každopádne vracia to true, ak string obsahuje "-text". Napr. pri tomto to označí 1. a 3. "-ano nie -ano"
_________________ Notebook: Dell Inspiron 15-7537= i5-4200U|nVidia GT 750M 2GB|RAM 6GB|250GB Samsung 850 EVO|W8.1|Cooler Master NotePal U3 Pc: Asus Rog Strix B360-G | i7-8700 | MSI 1080 Gaming X | Crucial Ballistix 16GB 2666MHz Dual Ranked | Samsung 970 Evo | Crucial MX500 | WD Red | Fera 3 | Arctic F12 Silent | Seasonic Focus Plus 650W Gold | Fractal Design Mini C TG Disk: Western Digital Elements 1TB USB 2.0; Seagate Expansion 2TB USB 3.0 Príslušenstvo: A4tech Bloody V3 V-Track Core 3 + A4tech Bloody B-070; A4tech Bloody B120; A4tech Bloody G501; ATH-M40x; MSI Clutch M40 Monitor: Dell U2515H Mobil: Xiaomi Redmi Note 3 Special Edition |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
V tomto prípade by som skôr videl problém v tom, že nemáš kotvu na začiatok. Ak napíšeš [^-][a-z0-9]+, tak v texte "-nieco" sa ti to chytí na všetky podreťazce, ktoré nezačínajú na mínus. Takže na ni, nie, niec, nieco, ie, iec, ieco atď... Keď ale použiješ kotvu na začatok, väčšinou je to ^ (značí, že string sa musí začínať na daný výraz), tak ti to bude fungovať.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | 39 |
Kód: bool checkRegular(char* regularexp, char* argv){ regex_t regex; int reti;
reti = regcomp(®ex, regularexp, 0); if (reti) { fprintf(stderr, "Could not compile regex\n"); exit(1); } reti = regexec(®ex, argv, 0, NULL, 0); if (reti == 0) { printf("Match: %s\n",argv); return false;
} else { printf("no Match: %s \n",argv); return true; } regfree(®ex); } s regex ([-][aA-zZ]*)\w+ (upravene na ([-][aA-zZ]*)[a-zA-Z0-9]+) lebo s \w hadzalo error pri kompilacii Terminal: Kód: no Match: 077 no Match: -s no Match: -m s regex [^-][a-z0-9]+ Terminal: Kód: no Match: 077 no Match: -s no Match: -m s regex ^[^-][a-z0-9]+ Kód: no Match: 077 no Match: -s no Match: -m ..urcite neni chyba vo funkcii?
|
|
Registrovaný: 07.04.12 Prihlásený: 02.06.21 Príspevky: 907 Témy: 54 | 54 |
Tak sem postni celý kód, regex asi nebude klasickou C knižnicou. Tým myslím aspoň main a headers súbory/includy.
_________________ Notebook: Dell Inspiron 15-7537= i5-4200U|nVidia GT 750M 2GB|RAM 6GB|250GB Samsung 850 EVO|W8.1|Cooler Master NotePal U3 Pc: Asus Rog Strix B360-G | i7-8700 | MSI 1080 Gaming X | Crucial Ballistix 16GB 2666MHz Dual Ranked | Samsung 970 Evo | Crucial MX500 | WD Red | Fera 3 | Arctic F12 Silent | Seasonic Focus Plus 650W Gold | Fractal Design Mini C TG Disk: Western Digital Elements 1TB USB 2.0; Seagate Expansion 2TB USB 3.0 Príslušenstvo: A4tech Bloody V3 V-Track Core 3 + A4tech Bloody B-070; A4tech Bloody B120; A4tech Bloody G501; ATH-M40x; MSI Clutch M40 Monitor: Dell U2515H Mobil: Xiaomi Redmi Note 3 Special Edition |
|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | 39 |
Kód: #include <fcntl.h> #include <sys/stat.h> #include <stdio.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #include <getopt.h> #include <stdlib.h> #include <string.h> #include <regex.h> #include <stdbool.h>
bool checkRegular(char* regularexp, char* argv){ regex_t regex; int reti;
printf("regex: %s", regularexp); reti = regcomp(®ex, regularexp, 0); if (reti) { fprintf(stderr, "Could not compile regex\n"); exit(1); }
reti = regexec(®ex, argv, 0, NULL, 0); if (reti == 0) { printf("Match: %s\n",argv); return false;
} else { printf("no Match: %s \n",argv); return true; } regfree(®ex); }
int main(int argc, char *argv[]){ for (int i = 1; i < argc-2; ++i){ checkRegular("([-][aA-zZ]*)[a-zA-Z0-9]+)",argv[i]); }
return 0; }
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 | |
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | 39 |
Uz som sa na to vybodol, riesim to tak ze cez if skontrolujem len ci je na zaciatku stringu pomlcka, ak je vrati true v opacnom pripade false. Jednoduche a funkcne
|
|
Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 2 | 392 | 04.01.2012 0:54 1daemon1 | | v JavaScript, VBScript, Ajax | 4 | 471 | 09.09.2011 19:08 camo | | v PHP, ASP | 6 | 556 | 19.07.2008 16:25 fotograf | | v PHP, ASP | 6 | 522 | 27.02.2012 14:28 emer | | v JavaScript, VBScript, Ajax | 3 | 539 | 25.09.2010 2:58 Dolmayan | | v PHP, ASP | 2 | 426 | 11.06.2010 20:05 dartanan | | v PHP, ASP | 2 | 1001 | 22.05.2009 21:25 roach189 | | v Internetový marketing, SEO, reklama | 4 | 977 | 06.10.2008 13:22 Codik | | v Databázy | 2 | 706 | 29.10.2011 16:40 camo | | v PHP, ASP | 5 | 764 | 11.10.2009 21:06 Blackshadow |
|