Jak by ktoś się zastanawiał jak wygląda przykład wzorca na sprawdzenie email'a, którego używa Google lub MS:
'[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'
Nie wprowadzaj ludzi w błąd! Nie jest prawdą, że MS jak i Google używają jakichkolwiek wyrażeń regularnych do sprawdzania poprawności adresu email. Dodatkowo to wyrażenie co podałeś jest kompletnie błędne. Nie spełnia nawet podstawowych założeń rfc 822 jak i 5322.
Powiem więcej, do sprawdzenia poprawności adresu email w ogóle nie używa się regexp'a a 99,99% przykładów z sieci jest źle napisanych i po prostu nie działa jak powinno.
A na przyszłość - Jeśli chcesz rozwiązać problem za pomocą wyrażenia regularnego, to masz dwa problemy
RegEx to podstawa pracy na plikach, gdy trzeba zamienić pierdółkę w tysiącu plików. Nie zawsze wszystko jest zapisywane w jsonie albo xmlu, a poza tym regex jest szybszy, zwykle to linijka kodu, a nie kilkanaście w przypadku odczytywania drzewa xml/json.
Jak by ktoś się zastanawiał jak wygląda przykład wzorca na sprawdzenie email'a, którego używa Google lub MS:
'[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'
Nie wprowadzaj ludzi w błąd! Nie jest prawdą, że MS jak i Google używają jakichkolwiek wyrażeń regularnych do sprawdzania poprawności adresu email. Dodatkowo to wyrażenie co podałeś jest kompletnie błędne. Nie spełnia nawet podstawowych założeń rfc 822 jak i 5322.
Powiem więcej, do sprawdzenia poprawności adresu email w ogóle nie używa się regexp'a a 99,99% przykładów z sieci jest źle napisanych i po prostu nie działa jak powinno.
A na przyszłość - Jeśli chcesz rozwiązać problem za pomocą wyrażenia regularnego, to masz dwa problemy
Programuję w C# i z tego co wiem na co dzień używam atrybutów w jakiejś formie, nie wierzysz w używanie Regex'ów np. przez MS? Proszę bardzo, kod źródłowy .NET Framework:
https://github.com/Microsoft/referencesour...essAttribute.cs
Dalej idąc tym tokiem rozumowania, bazuję na wiedzy Sasha Goldshtein, który zajmuje się wydajnością aplikacji m.in w .NET i optymalizacją na poziomie assemblera i jak poleca jakiś wzorzec, ponieważ zna się na tym lepiej niż ja, to wole go posłuchać.
Na przyszłość, zanim zaczniesz kogoś obwiniać o niewiedzę to przeczytaj wypowiedź jako całość bez wybiórczego cytowania, ponieważ nie pasuje Ci to do Twojego kontekstu.
A propos, faktycznie swoją wypowiedzą powtórzyłeś prawie od deski do deski moją wypowiedź dlaczego nie warto używać regex'ów, m.in przez takie sytuacje
RegEx to podstawa pracy na plikach, gdy trzeba zamienić pierdółkę w tysiącu plików. Nie zawsze wszystko jest zapisywane w jsonie albo xmlu, a poza tym regex jest szybszy, zwykle to linijka kodu, a nie kilkanaście w przypadku odczytywania drzewa xml/json.
Popieram, mi się ostatnio regex przydał, kiedy musiałem odczytać datę i czas utworzenia pliku zapisaną wewnątrz pliku HTML.
Zgadza się nie masz wiedzy to nie przeskoczysz. Ja to sporo sam pisałem i w IT Academy szkolenia kończyłem także radzę sobie. Dobrych pracowników w IT to ze świecą trzeba szukać. A doświadczenia jak się nie ma to daleko się nie zajdzie…
Jak by ktoś się zastanawiał jak wygląda przykład wzorca na sprawdzenie email'a, którego używa Google lub MS:
'[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'
Nie wprowadzaj ludzi w błąd! Nie jest prawdą, że MS jak i Google używają jakichkolwiek wyrażeń regularnych do sprawdzania poprawności adresu email. Dodatkowo to wyrażenie co podałeś jest kompletnie błędne. Nie spełnia nawet podstawowych założeń rfc 822 jak i 5322.
Powiem więcej, do sprawdzenia poprawności adresu email w ogóle nie używa się regexp'a a 99,99% przykładów z sieci jest źle napisanych i po prostu nie działa jak powinno.
A na przyszłość - Jeśli chcesz rozwiązać problem za pomocą wyrażenia regularnego, to masz dwa problemy
po co te kropki
mnie zawsze meczyl dr bo napisalem program maly ale z wieloma zakazanymi sztuczkami. dzialal ale po kompilacji juz nikt nie wiedzial ocoho
Jak by ktoś się zastanawiał jak wygląda przykład wzorca na sprawdzenie email'a, którego używa Google lub MS:
'[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'
Nie wprowadzaj ludzi w błąd! Nie jest prawdą, że MS jak i Google używają jakichkolwiek wyrażeń regularnych do sprawdzania poprawności adresu email. Dodatkowo to wyrażenie co podałeś jest kompletnie błędne. Nie spełnia nawet podstawowych założeń rfc 822 jak i 5322.
Powiem więcej, do sprawdzenia poprawności adresu email w ogóle nie używa się regexp'a a 99,99% przykładów z sieci jest źle napisanych i po prostu nie działa jak powinno.
A na przyszłość - Jeśli chcesz rozwiązać problem za pomocą wyrażenia regularnego, to masz dwa problemy
Programuję w C# i z tego co wiem na co dzień używam atrybutów w jakiejś formie, nie wierzysz w używanie Regex'ów np. przez MS? Proszę bardzo, kod źródłowy .NET Framework:
https://github.com/Microsoft/referencesour...essAttribute.cs
Dalej idąc tym tokiem rozumowania, bazuję na wiedzy Sasha Goldshtein, który zajmuje się wydajnością aplikacji m.in w .NET i optymalizacją na poziomie assemblera i jak poleca jakiś wzorzec, ponieważ zna się na tym lepiej niż ja, to wole go posłuchać.
Na przyszłość, zanim zaczniesz kogoś obwiniać o niewiedzę to przeczytaj wypowiedź jako całość bez wybiórczego cytowania, ponieważ nie pasuje Ci to do Twojego kontekstu.
A propos, faktycznie swoją wypowiedzą powtórzyłeś prawie od deski do deski moją wypowiedź dlaczego nie warto używać regex'ów, m.in przez takie sytuacje
Popieram, mi się ostatnio regex przydał, kiedy musiałem odczytać datę i czas utworzenia pliku zapisaną wewnątrz pliku HTML.
#include <dateutils.hpp>
#include <boost/regex.hpp>
bool __fastcall GetDateFromIndexHtm(UnicodeString strIndexFile, TDateTime &dtDate)
{
TStringList *pstrlistFile = new TStringList;
pstrlistFile->LoadFromFile(strIndexFile);
std::wstring wstrText = pstrlistFile->GetText();
delete pstrlistFile;
const boost::wregex regexDT(L"(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2})");
boost::wsmatch wstrMatch;
bool bFound = boost::regex_search(wstrText, wstrMatch, regexDT);
if(bFound) {
std::wstring wstrDate = std::wstring(wstrMatch[0].first,wstrMatch[0].second);
UnicodeString strDate(wstrDate.c_str());
int nPos = strDate.Pos(L" ");
if(nPos > 0) {
strDate[nPos] = L'T';
dtDate = ISO8601ToDate(strDate);
return true;
}
}
return false;
}
Dużo zapłacili to nie ma napisu 'reklama'. PC LOL $