#wyrazeniaregularne #regexp #programowanie

Potrzebuję kilkunastu dobrze sprawdzonych wyrażeń regularnych (np. do walidacji formularzy tzn. np. z datą, godziną, emailem, numerem telefonu itd. itd).

Mógłbym sam je napisać, ale nie będą idealne. Mógłbym poszukać forach/stackoverflow, ale też nie jest pewne, że nie zawierają jakiś błędów.

Najchętniej wziąłbym z jakiegoś gotowca napisanego przez profesjonalistów. Wiem, że np. w C# (ASP.NET) są zaszyte gotowe do sprawdzania, podobnie jest chyba
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

No i np. dla emaila coś jest: https://github.com/hibernate/hibernate-validator/blob/6ae19900e2951513034534f9aec786689da9b4d8/engine/src/test/java/org/hibernate/validator/test/internal/engine/methodvalidation/returnvaluevalidation/ContactBean.java


@mk321: To jest faktycznie „tylko” test czy walidacja działa poprawnie.

Tu masz „constrainty”, czyli „definicje” co należy zwalidować, np możesz jakieś pole obiektu oznaczyć „constraintem” URL, dzięki czemu system walidacji wie, że ma sprawdzić, że pole
  • Odpowiedz
@MacDada: o to mi chodziło :) Dzięki :)


Właśnie nie mogłem znaleźć tych klas "walidatorów".

Teraz widzę, że od środka wygląda to trochę inaczej niż myślałem, i raczej mniej niż więcej jest oparte na wyrażeniach regularnych (no i jednak nie mogę ich tak
  • Odpowiedz
Troche #mikroreklama znaleziska, ale przede wszystkim #naukaprogramowania

[+24, -0] CodeSchool uruchamia multimedialny kurs... wyrażeń regularnych (darmowy przez pierwsze 48h) :)

Jeżeli jest coś co oprócz gita powinien znać każdy programista, to jest to angielski i właśnie wyrażenia regularne. Robię wrzutkę jeszcze raz, bo pozostało już tylko 24h kiedy to kurs jest darmowy, a jest naprawdę dobry na początek :) @zona_noisyego już zrobiła* ;)

#regexp
noisy - Troche #mikroreklama znaleziska, ale przede wszystkim #naukaprogramowania

...

źródło: comment_g00y9czFuzsAbXXzeaGos6hXhXxMMuTF.jpg

Pobierz
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jakie regexy w C# są ułomne to ja nawet nie...

Mam jedną linię tekstu w tym stylu:

/mnt/asec 485.5M 0.0K 485.5M
Do tego taki regex:
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki takie głupie pytanko z dziedziny REGEXP z php.

Mam takie wyrażenie: ([a-zA-Z0-9]{3,32})
Jak to zmodyfikować, żeby wyłapać również wyrażenia z kropką w środku (nie na początku ani na końcu) ?

#programowanie #php #regexp
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Tylko, że podane powyżej wyrażenia nie spełniają Twojego wymogu: "wyrażenia z kropką w środku (nie na początku ani na końcu)".
  • Odpowiedz
#regexp

Mirki regexpujące jak wyciągnąć zawartość drugich nawiasów z tekstu tj. dla przykładu poniżej "tylko mirko":

Lorem ipsum (dolor sit amet) 2015-02-03 22:04 - 2015-02-03 22:05 (tylko mirko) consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna (aliqua).

#programowanie
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Słuchajcie mirki, mam taki problem, otóż potrzebuję wynaleźć ze Stringa liczby/cyfry pooddzielane znakami interpunkcyjnymi tudzież spacjami
wszystko szło by pięknie, tylko co ja mam wpisać na początek, jak mam string

ab12;34.5,6b 7c 89:1101
Ergo potrzebuję wydobyć tylko cyfry 34, 5, 89 i 1101
Jak napisać regexa, żeby był łaskawy pominąć mi tą 12 na początku?
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tellet: Po co wszystko załatwiać jednym regexpem? Zrób najpierw split po znakach interpunkcyjnych i potem każdy element listy sprawdzaj sobie prostym regexpem "\d+".

Jeśli masz do dyspozycji Javę 8, to sprowadza się to do jednej linijki przy wykorzystaniu strumieni:

List parseLine(String line) {
  • Odpowiedz
Dzień dobry. Mam pytanie o wydajność zastosowanego rozwiązania.

Problem: string w postaci liczba spacja liczba spacja(...) spacja spacja #num: liczba, z którego należy wydobyć ostatnią liczbę(ilość liczbo spacji na początku dowolna, liczby dowolnej długości). Przykład: "12 18 #num: 338921"
Rozwiązanie:

String input = "12 18 #num
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@KotoFan: Jeśli rzeczywiście obchodzi cię tylko ta liczba po #num to można o wiele prościej:

Pattern p = Pattern.compile("#num: (\d+)");
Matcher m = p.matcher(input);
if (m.find()) {
  result = m.group(1);
}
  • Odpowiedz
Mam plik tekstowy, zawiera kilka tys. linijek w formacie:

XXXX:YYYYYYYYY:ZZZZZ:VVVVVV


Y i Z jest zawsze tyle samo, liczba X i V jest rożna.

W
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak napisać #regexp, który wyłapie "Ciag Znakow" powtórzony w najbliższych dwóch kolejnych liniach? Przy czym między kolejnymi wystąpieniami MUSI być jeden lub dwa entery, ale nie więcej niż dwa?

bo

/.*ciag znakow.*$.*ciag znakow.*/
oczywiście nie ma sensu (wyłapie dowolną ilość
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Marmite: dobra, mam na swoje usprawiedliwienie czemu mi się to komplikowało... ten pieprzony edytor nie obsługuje regexpów między liniami... muszę se notepad++ zaprząc do tego zadania..
  • Odpowiedz
Pomocy. Potrzebuje regex'a który usunie mi pierwsze słowo, a mianowicie:

Jest:

(costupisze)tu też coś pisze


Chce
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki, jak z ciągu

lkjgklsdjglk Odjazd 02:30 kdjghjkdhf Przyjazd 05:03
wyciągnąć tylko godzinę odjazdu?

Ten kod:
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

var myRegexp = /(Odjazd )([0-9]{2}:[0-9]{2})/g;


@vans: Jeśli używasz nawiasów a nie interesuje cię ich zawartość, użyj non-capturing group.

var myRegexp = /(?:Odjazd )([0-9]{2}:[0-9]{2})/g;
i
  • Odpowiedz