Perl ha un modificatore piacevole /x
che ignora gli spazi bianchi nelle espressioni regolari. Vale a dire non che corrisponda a prescindere dagli spazi bianchi, ma piuttosto che ometti gli spazi bianchi nell'interpretazione della regex a meno che non sia sfuggito.Equivalente alla modalità Perl/x (ignora lo spazio) nelle espressioni regolari R
I.e. ^x[0-7][x-z][ABCpuq*]*$
potrebbe essere scritto in modo equivalente ma molto più leggibile come ^x [0-7] [x-z] [ABCpuq*]*$
nella modalità /x
.
grep
e il suo ilk in R sembrano non avere tale modalità, ma data la loro compatibilità Perl, c'è un'opzione da passare? Ho provato alcune opzioni ma nessuna fortuna.
> grepl("^x[0-7][x-z][ABCpuq*]*$", "x5yuuA")
[1] TRUE
> grepl("^x [0-7] [x-z][ABCpuq*]*$", "x5yuuA")
[1] FALSE
> grepl("^x [0-7] [x-z][ABCpuq*]*$", "x5yuuA", perl=TRUE)
[1] FALSE
> grepl("^x [0-7] [x-z][ABCpuq*]*$/x", "x5yuuA", perl=TRUE)
[1] FALSE
Domanda secondaria: in che modo le regex in stile Perl di R si basano sulla libreria C PCRE? Sembra esserci un PCRE_Extended
setting bit che si attiva ignorando gli spazi bianchi.
FYI, Modifica: per la domanda secondaria, aggiunto riferimento al manuale R. – zx81