2.1 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7db6367417b2b2512b9b | Trovare caratteri con la corrispondenza lazy | 1 | 301341 | find-characters-with-lazy-matching |
--description--
Nelle espressioni regolari, una corrispondenza greedy (avida) trova la parte più lunga possibile di una stringa che si adatta al pattern dell'espressione regolare e la restituisce. L'alternativa è chiamata corrispondenza lazy (pigra), che trova la parte più piccola possibile della stringa che soddisfa il modello dell'espressione regolare.
Puoi applicare l'espressione regolare /t[a-z]*i/
alla stringa "titanic"
. Questa espressione regolare è fondamentalmente un pattern che inizia con t
, termina con i
e ha alcune lettere nel mezzo.
Le espressioni regolari sono di default greedy, quindi la corrispondenza restituirà ["titani"]
. Trova la sotto-stringa più grande possibile che si adatti al pattern.
Puoi usare il carattere ?
per passare alla corrispondenza lazy. "titanic"
passato attraverso l'espressione regolare modificata di /t[a-z]*?i/
restituisce ["ti"]
.
Nota: L'analisi dell'HTML con le espressioni regolari dovrebbe essere evitata, ma il pattern che corrisponde a una stringa HTML con le espressioni regolari va del tutto bene.
--instructions--
Correggi l'espressione regolare /<.*>/
in modo che restituisca il tag HTML <h1>
e non il testo "<h1>Winter is coming</h1>"
. Ricorda che il carattere jolly .
in un'espressione regolare corrisponde a qualsiasi carattere.
--hints--
La variabile result
dovrebbe essere un array con <h1>
al suo interno
assert(result[0] == '<h1>');
myRegex
dovrebbe usare la corrispondenza lazy
assert(/[^\\][\*\+\?]\?/.test(myRegex));
myRegex
non dovrebbe includere la stringa h1
assert(!myRegex.source.match('h1'));
--seed--
--seed-contents--
let text = "<h1>Winter is coming</h1>";
let myRegex = /<.*>/; // Change this line
let result = text.match(myRegex);
--solutions--
let text = "<h1>Winter is coming</h1>";
let myRegex = /<.*?>/; // Change this line
let result = text.match(myRegex);