Abbina caratteri di nuova riga in R Regex
Sebbene le espressioni regolari (abbreviazione di regex
) siano un modo abbastanza universale per definire schemi di stringhe, questi schemi possono comportarsi in modo diverso su piattaforme diverse, in particolare quando l’espressione regolare intende abbinare caratteri speciali, come le interruzioni di riga. In questo articolo, analizzeremo diversi modi di includere interruzioni di riga all’interno di espressioni regolari in R.
Sequenze di nuova riga in diversi ambienti
In ambienti Linux, il modello \n
è una corrispondenza per una sequenza di nuova riga. Su Windows, tuttavia, l’interruzione di riga corrisponde a \r\n
e nei vecchi Mac con \r
.
Se hai bisogno di un’espressione regolare che corrisponda a una sequenza di nuova riga su una qualsiasi di queste piattaforme, potresti usare il modello \r?\n
per abbinare entrambe le sequenze di caratteri di terminazione di riga \n
e \r?\n
.
Avrai ambienti Linux e Windows coperti da questa opzione, sebbene il modello non corrisponderà correttamente alle interruzioni di riga nei vecchi Mac. Per coprire anche i vecchi Mac, potresti usare il modello \r?\n|\r
che corrisponde anche a \r
. Una versione più corretta di questo modello sarebbe: (\r\n|\r|\n)
.
Test Regex con sequenze di nuova riga
Molti siti web offrono la possibilità di testare espressioni regolari. La maggior parte di essi funziona come ambienti Linux, trovando corrispondenze su stringhe con avanzamenti di riga durante il test del modello \n
. Ma non trovano una corrispondenza quando provi il modello \r\n
. Esempi di questi siti sono Regex101 e regex tester in extendsclass.
Altri siti web di test potrebbero mostrare comportamenti diversi, proprio come accade con diversi ambienti operativi. Ad esempio, Regex Storm funziona più come le piattaforme Windows, trovando corrispondenze tra stringhe con interruzioni di riga e il modello \r\n
.