logo

Tutorial d'expressió regular: com escriure expressions regulars?

Una expressió regular (regex) és una seqüència de caràcters que defineixen un patró de cerca. A continuació s'explica com escriure expressions regulars:

  1. Comenceu per entendre els caràcters especials que s'utilitzen a l'expressió regular, com ara ., *, +, ? i més.
  2. Trieu un llenguatge de programació o una eina que admeti regex, com ara Python, Perl o grep.
  3. Escriu el teu patró utilitzant els caràcters especials i literals.
  4. Utilitzeu la funció o el mètode adequat per cercar el patró en una cadena.

Exemples:

  1. Per fer coincidir una seqüència de caràcters literals, simplement escriviu aquests caràcters al patró.
  2. Per fer coincidir un sol caràcter d'un conjunt de possibilitats, utilitzeu claudàtors, p. [0123456789] coincideix amb qualsevol dígit.
  3. Per fer coincidir zero o més ocurrències de l'expressió anterior, utilitzeu el símbol estrella (*).
  4. Per fer coincidir una o més ocurrències de l'expressió anterior, utilitzeu el símbol més (+).
  5. És important tenir en compte que l'expressió regular pot ser complexa i difícil de llegir, per la qual cosa es recomana utilitzar eines com els provadors d'expressió regular per depurar i optimitzar els vostres patrons.

Una expressió regular (de vegades anomenada expressió racional) és una seqüència de caràcters que defineixen un patró de cerca, principalment per utilitzar-se en la concordança de patrons amb cadenes, o la concordança de cadenes, és a dir, cercar i substituir operacions semblants. Les expressions regulars són una manera generalitzada de fer coincidir patrons amb seqüències de caràcters. S'utilitza en tots els llenguatges de programació com C++, Java i Python.



millor hentai

Què és una expressió regular i què la fa tan important?

Regex s'utilitza a anàlisis de Google en la coincidència d'URL per donar suport a la cerca i substitueix als editors més populars com Sublime, Notepad++, Brackets, Google Docs i Microsoft Word.

  Example :    Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$>

L'expressió regular anterior es pot utilitzar per comprovar si un determinat conjunt de caràcters és una adreça de correu electrònic o no.

Com escriure expressions regulars?

Hi ha certs elements utilitzats per escriure expressions regulars com s'esmenta a continuació:



1. Repetidors ( *, + i { } )

Aquests símbols actuen com a repetidors i indiquen a l'ordinador que el caràcter anterior s'ha d'utilitzar més d'una vegada.

2. El símbol d'asterisc ( * )

Indica a l'ordinador que coincideixi amb el caràcter anterior (o conjunt de caràcters) 0 o més vegades (fins a l'infinit).

  Example :   The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>

3. El símbol més ( + )

Indica a l'ordinador que repeteixi el caràcter anterior (o conjunt de caràcters) almenys una o més vegades (fins a l'infinit).



  Example :   The regular expression ab+c will give abc, abbc, abbbc, … and so on.>

4. Les claus { … }

Indica a l'ordinador que repeteixi el caràcter anterior (o conjunt de caràcters) tantes vegades com sigui el valor dins d'aquest parèntesi.

  Example :   {2} means that the preceding character is to be repeated 2  times, {min,} means the preceding character is matches min or more  times. {min,max} means that the preceding character is repeated at least min & at most max times.>

5. Comodí ( . )

El símbol de punt pot substituir qualsevol altre símbol, per això s'anomena caràcter comodí.

  Example :    The Regular expression .* will tell the computer that any character can be used any number of times.>

6. Caràcter opcional ( ? )

Aquest símbol indica a l'ordinador que el caràcter anterior pot estar o no present a la cadena que s'ha de fer coincidir.

  Example :    We may write the format for document file as – docx? The ‘?’ tells the computer that x may or may not be  present in the name of file format.>

7. El símbol del signe de cursor ( ^ ). ( Posició de configuració per al partit)

El símbol de signe de cursor indica a l'ordinador que la coincidència ha de començar al principi de la cadena o línia.

  Example :   ^d{3} will match with patterns like '901' in '901-333-'.>

8. El símbol del dòlar ( $ ).

Indica a l'ordinador que la coincidència s'ha de produir al final de la cadena o abans de al final de la línia o cadena.

hashmap en java
  Example :   -d{3}$ will match with patterns like '-333' in '-901-333'.>

9. Classes de personatges

Una classe de caràcters coincideix amb qualsevol d'un conjunt de caràcters. S'utilitza per fer coincidir l'element més bàsic d'una llengua com una lletra, un dígit, un espai, un símbol, etc.

s : coincideix amb qualsevol caràcter d'espai en blanc com ara espai i tabulació.
S : coincideix amb qualsevol caràcter que no sigui espai en blanc.
d : coincideix amb qualsevol caràcter de dígit.
D: coincideix amb qualsevol caràcter que no sigui dígit.
En : coincideix amb qualsevol caràcter de paraula (bàsicament alfanumèric)
IN : coincideix amb qualsevol caràcter que no sigui una paraula.
 : coincideix amb qualsevol límit de paraula (això inclou espais, guions, comes, punt i coma, etc.
[conjunt_de_caràcters]: Coincideix amb qualsevol caràcter de set_of_characters. Per defecte, la coincidència distingeix entre majúscules i minúscules.

  Example :   [abc] will match characters a,b and c in any string.>

10. [^conjunt_de_caràcters] Negació:

Coincideix amb qualsevol caràcter únic que no estigui a set_of_characters. Per defecte, la coincidència distingeix entre majúscules i minúscules.

  Example :   [^abc] will match any character except a,b,c .>

11. [primer-últim] Interval de caràcters:

Coincideix amb qualsevol caràcter de l'interval del primer al darrer.

  Example :   [a-zA-z] will match any character from a to z or A to Z.>

12. El símbol d'escapament ( )

Si voleu fer coincidir els caràcters reals '+', '.', etc., afegiu una barra invertida ( ) abans d'aquest caràcter. Això dirà a l'ordinador que tracti el caràcter següent com un caràcter de cerca i que el consideri com un patró de concordança.

  Example :   d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>

13. Agrupació de caràcters ( )

Es pot agrupar un conjunt de símbols diferents d'una expressió regular per actuar com una unitat única i comportar-se com un bloc, per a això, cal embolicar l'expressió regular entre parèntesis ( ).

  Example :   ([A-Z]w+) contains two different elements of the regular  expression combined together. This expression will match any pattern  containing uppercase letter followed by any character.>

14. Barra vertical ( | )

Coincideix amb qualsevol element separat pel caràcter de barra vertical (|).

  Example :   th(e|is|at) will match words - the, this and that.>

15. úmero

Referència posterior: permet identificar posteriorment una subexpressió coincident prèviament (expressió capturada o inclosa entre claudàtors circulars) en la mateixa expressió regular. significa que el grup tancat dins del claustre n-è es repetirà a la posició actual.

np.random.rand
  Example :   ([a-z])1 will match ee in Geek because the character  at second position is same as character at position 1 of the match.>

16. Com ( ?# comentari )

Comentari en línia: el comentari acaba al primer parèntesi de tancament.

  Example :   A(?#This is an inline comment)w+>

17. # [fins al final de la línia]

Comentari en mode X. El comentari comença amb un # sense escapar i continua fins al final de la línia.

  Example :   (?x)Aw+#Matches words starting with A>