Mikä on säännöllinen lauseke?

Säännöllinen lauseke (regex) on merkkijono, joka määrittelee hakukaavan. Alun perin formaalin kieliteorian tarpeisiin kehitetyt säännölliset lausekkeet ovat nykyään käytössä lähes kaikissa ohjelmointikielissä ja tekstinkäsittelytyökaluissa stringien etsimiseen, täsmäyttämiseen ja muokkaamiseen. Kaava kuten [a-z]+@[a-z]+\.com kuvaa yksinkertaisen sähköpostiosoitteen rakennetta — kirjaimia, joita seuraa @-merkki, lisää kirjaimia, piste ja literaalinen string "com."

Hakemisen lisäksi säännöllisiä lausekkeita voidaan käyttää myös datan generoimisen pohjana. Kääntämällä täsmäytysprosessi, regex-moottori voi tuottaa satunnaisia stringejä, jotka noudattavat annettua kaavaa. Tämä on erityisen hyödyllistä ohjelmistotestauksessa, prototyyppauksessa ja tietokantojen täyttämisessä realistisen näköisellä testidatalla ilman oikeiden käyttäjätietojen käyttöä.

Työkalun kuvaus

Tämä työkalu generoi satunnaisia stringejä, jotka vastaavat mitä tahansa antamaasi regex-kaavaa. Syötä regex-kaava — tai valitse valmiista esiasetuksista — ja tuota välittömästi jopa 1 000 täsmäävää arvoa. Se tukee kaikkea standardia regex-syntaksia, mukaan lukien merkkiluokat, kvanttorit, ryhmät, vaihtoehdot ja takaisinviittaukset. Tulostetta voidaan käyttää suoraan testifixturena, siemendatana tai syötteenä validointiskripteille.

Ominaisuudet

  • Valmiit esiasetukset yleisille formaateille: sähköposti, IPv4, UUID, yhdysvaltalainen puhelinnumero, päivämäärä, hex-väri, rekisterikilpi ja MAC-osoite
  • Mukautettu regex-syöte, joka hyväksyy täyden JavaScript-säännöllisten lausekkeiden syntaksin
  • Säädettävä määrä 1–1 000 generoitua arvoa per ajo
  • Enimmäistoiston hallinta rajoittamaan, kuinka monta kertaa rajoittamattomat kvanttorit (+, *, {n,}) laajenevat, estäen liian pitkien stringien muodostumisen
  • Vain uniikit arvot -tila, joka poistaa kaksoiskappaleet tulosteesta ja varoittaa, jos kaavan entropia on liian alhainen riittävän määrän erillisten arvojen tuottamiseen

Käyttötapaukset

  • Ohjelmistotestaus: Generoi satoja realistisen näköisiä sähköpostiosoitteita, UUID:ita tai IP-osoitteita käytettäväksi testifixturena tai siemendatana automaattisissa testikokonaisuuksissa paljastamatta oikeita käyttäjätietoja.
  • Tietokannan alustus: Täytä kehitys- tai staging-tietokannat nopeasti realistisella testidatalla, joka noudattaa sarakkeiden rajoitteita ja validointisääntöjä.
  • Regex-oppiminen: Kokeile säännöllisten lausekkeiden syntaksia kirjoittamalla kaava ja näkemällä välittömästi, millaisia stringejä se voi tuottaa — tämä helpottaa kvanttorien, merkkiluokkien ja ryhmittelyn ymmärtämistä.

Valintojen selitykset

Valinta Kuvaus
Esiasetus Valitse valmis kaava yleisille dataformaateille tai valitse "Mukautettu" kirjoittaaksesi oman regex-kaavasi. Esiasetuksen valitseminen täyttää regex-kaavakentän automaattisesti.
Regex-kaava Säännöllinen lauseke, jota käytetään datan generoimiseen. Tukee merkkiluokkia ([a-z]), kvanttoreja ({3,8}, +, *), ryhmiä ja vaihtoehtoja ((com|net|org)) sekä erikoistokeneita (\d, \w).
Määrä Generoitavien stringien määrä, välillä 1–1 000.
Enimmäistoisto Rajoittaa rajoittamattomien kvanttorien laajentumista. Esimerkiksi enimmäistoiston ollessa 10 kaava [a-z]+ tuottaa enintään 10 merkin pituisia stringejä. Alue: 1–100.
Vain uniikit arvot Kun käytössä, varmistaa, että tulosteessa ei esiinny kaksoiskappaleita. Jos kaava ei pysty tuottamaan riittävästi uniikkeja arvoja, näytetään varoitus todellisen generoidun määrän kanssa.

Vinkkejä

  • Aloita esiasetuksesta ja muokkaa sitä oppiaksesi, miten regex-kaavat muuntuvat generoiduksi dataksi.
  • Jos tarvitset kiinteän pituista tulostetta, käytä tarkkoja kvanttoreja kuten {8} vaihteluvälien kuten {5,10} sijaan.
  • Pienennä enimmäistoiston arvoa käyttäessäsi +- tai *-kvanttoreja pitääksesi generoidut stringit lyhyinä ja luettavina.
  • Ota uniikki-tila käyttöön generoidessasi tunnisteita tai avaimia, joiden ei tule toistua — mutta käytä kaavaa, jossa on riittävästi vaihtelua, jotta uniikkiusraja ei tule vastaan.

UKK

Voinko käyttää lookahead- tai lookbehind-lausekkeita? Generaattori perustuu randexp.js-kirjastoon, joka tukee useimpia JavaScript-regex-ominaisuuksia. Lookahead- ja lookbehind-lausekkeita ei tueta generoinnissa, koska ne eivät määrittele merkkisisältöä.

Miksi sain vähemmän tuloksia kuin pyysin? Kun "Vain uniikit arvot" on käytössä, kaavalla ei välttämättä ole riittävästi mahdollisia permutaatioita pyydetyn määrän erillisten stringien tuottamiseen. Kokeile laajentaa merkkiluokkia tai kasvattaa kvanttorien vaihteluvälejä.

Onko tuloste aidosti satunnainen? Tuloste on pseudosatunnainen. Jokainen ajo tuottaa erilaisia tuloksia, mutta satunnaisuus ei ole kryptografisesti turvallista. Älä käytä tätä työkalua salasanojen tai tietoturvatokenien generoimiseen.