|
334 | 334 | "plt.show()" |
335 | 335 | ] |
336 | 336 | }, |
| 337 | + { |
| 338 | + "cell_type": "markdown", |
| 339 | + "metadata": {}, |
| 340 | + "source": [ |
| 341 | + "### `re` - Espressioni Regolari\n", |
| 342 | + "La libreria **re** fa parte della libreria standard di Python ed è usata per lavorare con le **espressioni regolari**, cioè schemi testuali che permettono di cercare, estrarre e manipolare stringhe in modo molto potente. È utile per compiti come validazione di input, parsing di testo o sostituzioni complesse." |
| 343 | + ] |
| 344 | +}, |
| 345 | +{ |
| 346 | + "cell_type": "code", |
| 347 | + "execution_count": null, |
| 348 | + "metadata": {}, |
| 349 | + "outputs": [], |
| 350 | + "source": [ |
| 351 | + "import re\n", |
| 352 | + "\n", |
| 353 | + "text = \"My email is [email protected] and my phone number is 123-456-7890\"\n", |
| 354 | + "\n", |
| 355 | + "# Find all emails in text\n", |
| 356 | + "emails = re.findall(r'[\\w\\.-]+@[\\w\\.-]+', text)\n", |
| 357 | + "print(\"Email found:\", emails)\n", |
| 358 | + "\n", |
| 359 | + "# Replace phone number with *** (masking)\n", |
| 360 | + "masked = re.sub(r'\\d', '*', text)\n", |
| 361 | + "print(\"New text:\", masked)" |
| 362 | + ] |
| 363 | +}, |
337 | 364 | { |
338 | 365 | "cell_type": "markdown", |
339 | 366 | "id": "2dc60fab", |
|
411 | 438 | "---" |
412 | 439 | ] |
413 | 440 | }, |
| 441 | + { |
| 442 | + "cell_type": "markdown", |
| 443 | + "metadata": {}, |
| 444 | + "source": [ |
| 445 | + "### Esercizio 4: Analisi di Testo con `re`\n", |
| 446 | + "Dato il seguente testo:\n", |
| 447 | + "\n", |
| 448 | + "```\n", |
| 449 | + |
| 450 | + "```\n", |
| 451 | + "\n", |
| 452 | + "Usa la libreria `re` per:\n", |
| 453 | + "1. Estrarre tutte le email dal testo.\n", |
| 454 | + "2. Sostituire i domini delle email con `***.com` (es: `[email protected]` diventa `pyhton@***.ai`)." |
| 455 | + ] |
| 456 | +}, |
| 457 | +{ |
| 458 | + "cell_type": "code", |
| 459 | + "execution_count": null, |
| 460 | + "metadata": {}, |
| 461 | + "outputs": [], |
| 462 | + "source": [] |
| 463 | +}, |
414 | 464 | { |
415 | 465 | "cell_type": "markdown", |
416 | 466 | "id": "353ced40", |
|
493 | 543 | "plt.show()" |
494 | 544 | ] |
495 | 545 | }, |
| 546 | + { |
| 547 | + "cell_type": "markdown", |
| 548 | + "metadata": {}, |
| 549 | + "source": [ |
| 550 | + "### Soluzione Esercizio 4: Analisi di Testo con `re`" |
| 551 | + ] |
| 552 | +}, |
| 553 | +{ |
| 554 | + "cell_type": "code", |
| 555 | + "execution_count": null, |
| 556 | + "metadata": {}, |
| 557 | + "outputs": [], |
| 558 | + "source": [ |
| 559 | + "import re\n", |
| 560 | + "\n", |
| 561 | + |
| 562 | + "\n", |
| 563 | + "# 1. Extarct all emails\n", |
| 564 | + "emails = re.findall(r'[\\w\\.-]+@[\\w\\.-]+', text)\n", |
| 565 | + "print(\"Email found:\", emails)\n", |
| 566 | + "\n", |
| 567 | + "# 2. Replace domains with ***.com\n", |
| 568 | + "masked_text = re.sub(r'@[\\w\\.-]+', '@***.ai', text)\n", |
| 569 | + "print(\"New text:\", masked_text)" |
| 570 | + ] |
| 571 | +}, |
496 | 572 | { |
497 | 573 | "cell_type": "markdown", |
498 | 574 | "id": "footer", |
|
0 commit comments