Regex testētājs
Pārbaudiet JavaScript regulārās izteiksmes uzreiz: izceltas atbilsmes, tveršanas grupas, aizvietošana un katras daļas skaidrojums vienkāršā valodā.
| # | Pozīcija | Atbilsme | Grupas |
|---|
Izteiksmes skaidrojums
Brīdinājums: atkārtotā grupā ir cits neierobežots kvantifikators, piemēram, (a+)+. Šādas izteiksmes var prasīt eksponenciālu laiku tekstam, kas gandrīz atbilst (katastrofāla atkāpšanās).
Kā lietot regex testētāju
- Ierakstiet izteiksmi laukā Regulāra izteiksme bez apkārtējām slīpsvītrām. Slīpsvītras un aktīvie karodziņi tiek rādīti ap lauku, kā
/pattern/g. - Atzīmējiet nepieciešamos Karodziņi:
g(globāls),i(ignorēt reģistru),m(daudzrindu),s(dotAll),u(unicode) vaiy(lipīgs). - Ielīmējiet meklējamo tekstu laukā Testa teksts. Atbilsmes tiek izceltas rakstīšanas laikā, un tabulā katra atbilsme ir uzskaitīta ar pozīciju un tveršanas grupām.
- Lai izmēģinātu aizvietošanu, aizpildiet Aizstājējteksts. Lodziņā Rezultāts pēc aizvietošanas redzams teksts, kurā katra atbilsme aizstāta, gatavs kopēšanai.
- Izlasiet Izteiksmes skaidrojums, lai pārbaudītu, ko dara katra regex daļa. Nezināt, ar ko sākt? Noklikšķiniet uz Ielādēt piemēru.
Ko rāda testētājs
- Izceltas atbilsmes: katra atbilsme testa tekstā ir atzīmēta, tāpēc uzreiz redzams, kas tiek atrasts un kas netiek.
- Atbilsmju tabula: katras atbilsmes numurs, tās pozīcija (rakstzīmju nobīde no sākuma, skaitot no 0), atbilstošais teksts un katras tveršanas grupas vērtība. Nosauktas grupas, piemēram,
(?<year>\d{4}), parādās ar savu nosaukumu, bet grupas, kas atbilsmē nepiedalījās, tiek rādītas kā „(nav atbilsmes)“. Tiek uzskaitītas pirmās 1000 atbilsmes. - Aizvietošana: aizstājējtekstā izmanto JavaScript sintaksi:
$1vai$2numurētām grupām,$<name>nosauktām grupām,$&visai atbilsmei un$$burtiskai dolāra zīmei. Bez karodziņagtiek aizstāta tikai pirmā atbilsme. - Skaidrojums: izteiksme tiek sadalīta marķieros (burtiskais teksts, rakstzīmju klases, enkuri, grupas, kvantifikatori, apskates, atsauces uz grupām), katram ar īsu aprakstu. Ligzdotas grupas ir ievilktas, kas ļoti atvieglo garu izteiksmju pārskatīšanu.
Karodziņi īsumā
| Karodziņš | Iedarbība |
|---|---|
g |
Atrod visas atbilsmes, nevis apstājas pie pirmās |
i |
Ignorē atšķirību starp lielajiem un mazajiem burtiem |
m |
^ un $ atbilst katras rindas sākumam un beigām |
s |
. atbilst arī rindu pārtraukumiem |
u |
Pilns Unicode režīms: \u{…}, \p{…} un emocijzīmes tiek apstrādātas kā viena rakstzīme |
y |
Lipīgs: katrai atbilsmei jāsākas tieši tur, kur beidzās iepriekšējā |
Katastrofāla atkāpšanās
Dažas izteiksmes tekstam, kas gandrīz atbilst, prasa eksponenciālu laiku. Klasisks piemērs ir (a+)+$, ko testē pret garu a virkni, kurai seko b: dzinējs izmēģina katru veidu, kā sadalīt a starp diviem kvantifikatoriem, pirms padodas. Šī problēma, saukta par ReDoS, ir apturējusi īstas vietnes.
Šis rīks aizsargā jūsu pārlūkprogrammu trīs veidos. Meklēšana notiek fona darbiniekā, kas tiek apturēts pēc 1,5 sekundēm; testa teksts ir ierobežots līdz 100 000 rakstzīmēm; un skaidrojums brīdina, ja atkārtotā grupā ir cits neierobežots kvantifikators. Ja izteiksmei iestājas noildze, pārrakstiet to tā, lai katru rakstzīmi varētu atrast tikai vienā veidā, piemēram, a+$ (a+)+$ vietā.
Biežāk uzdotie jautājumi
Kuru regex variantu šis rīks izmanto?
Tas izmanto jūsu pārlūkprogrammas JavaScript (ECMAScript) dzinēju tieši tā, kā to darītu new RegExp() un String.prototype.replace() jūsu kodā. Lielākā daļa sintakses sakrīt ar PCRE, Python un Java, taču daži elementi atšķiras: īpašnieciskie kvantifikatori un atomārās grupas JavaScript nepastāv, bet apskate atpakaļ tiek atbalstīta visās mūsdienu pārlūkprogrammās.
Kāpēc mana izteiksme atrod tikai vienu atbilsmi?
Karodziņš g ir izslēgts. Bez tā JavaScript apstājas pēc pirmās atbilsmes, un aizvietošana maina tikai to.
Kā atrast burtisku punktu, iekavu vai jautājuma zīmi?
Izsargājiet to ar atpakaļvērsto slīpsvītru: \., \[, \?. Skaidrojums izsargātās rakstzīmes rāda kā „(izsargāta)“, lai varētu pārbaudīt.
Vai mans teksts tiek kaut kur sūtīts?
Nē. Izteiksme un teksts tiek apstrādāti tikai jūsu pārlūkprogrammā, tāpēc šis rīks ir drošs žurnālfailiem vai datiem ar personas informāciju.
Kāpēc pozīcija atšķiras no kolonnas manā redaktorā?
Pozīcijas skaita rakstzīmes no 0 pa visām rindām, kā to dara JavaScript match.index. Rindu pārtraukumi skaitās kā viena rakstzīme, bet emocijzīme ārpus pamata daudzvalodu plaknes skaitās kā divas.
Saistītie rīki
- JSON formatētājs un validators Bezmaksas JSON formatētājs un validators, kas sakārto, minimizē un pārbauda JSON jūsu pārlūkprogrammā, norādot sintakses kļūdas rindu un kolonnu.
- URL kodētājs un atkodētājs Bezmaksas URL kodētājs un atkodētājs. Procentkodējiet vaicājuma parametrus vai pilnus URL, atkodējiet %XX secības un apstrādājiet + kā atstarpi pārlūkprogrammā.
- Jaucējkodu ģenerators Izveidojiet teksta vai jebkura izmēra failu MD5, SHA-1, SHA-256 un SHA-512 jaucējkodus un pārbaudiet kontrolsummas. Viss darbojas jūsu pārlūkprogrammā.