Puncte:0

Testarea expresiilor regulate

drapel eg

Încerc să învăț expresii regulate și am găsit câteva exemple online. Încercând să pun lucrurile cap la cap, am introdus asta în bash

^(([a-j][a-j]?)|(3[a-j][a-j])$

Returnează următoarea eroare

bash: !!: eveniment nu a fost găsit.

De ce crezi că primesc asta? Ar trebui să creez fișiere a to j? sau ar trebui să creez 1 fișier cu a-j în el? De ce returnează asta? Vă mulţumesc pentru ajutor.

drapel fo
Vă rugăm să arătați exact cum l-ați folosit.Tăiați și lipiți dacă este posibil.
Smokefox avatar
drapel eg
Salut Glen. Tocmai îl testam așa cum l-am introdus mai sus. de exemplu. Am testat ^/([0-9])|([0-9])$ și primesc o eroare diferită „înlocuirea eșuată”. Așa că încerc doar să înțeleg miezul ei. Am citit diverse articole despre expresii, dar am nevoie de ajutor pentru înțelegere.
drapel fo
Deci doar introduci asta într-un prompt bash? Ce vă așteptați să se întâmple? În bash, puteți utiliza doar o expresie regulată ca parte a unei comenzi condiționate `[[ $var =~ regex ]]`. A se vedea [3.2.5.2 Construcții condiționate](https://www.gnu.org/software/bash/manual/bash.html#Conditional-Constructs)
drapel ph
Sintaxa Shell este extrem de dependentă de context; bash va trata ceva ca o expresie regulată doar dacă apare într-un loc în care bash se așteaptă să vadă o expresie regulată (adică în `[[ $var =~ regex ]]`). Deoarece ați folosit asta într-un context de comandă generală, bash a văzut „^” și l-a interpretat ca o înlocuire a istoricului comenzii (adică crede că îi spuneți să-și amintească și să refolosească o parte a unei comenzi anterioare), pentru că asta este ceea ce `^` înseamnă într-un context general de comandă. Dar nu a putut găsi o comandă anterioară care se potrivește („eveniment”), așa că obțineți o eroare „eveniment nu a fost găsit”.
Smokefox avatar
drapel eg
@glennjackman, mulțumesc, acesta este răspunsul de care aveam nevoie.
Smokefox avatar
drapel eg
@GordonDavisson Vă mulțumim pentru defalcarea problemei. Înțeleg mai bine acum.
drapel us
Puteți folosi https://regexr.com pentru a vă juca cu expresii regulate.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.