Nota: Per chi si occupa di testo CJK (cinese, giapponese e coreano), lo spazio a doppio byte (Unicode \u3000
) è non incluso nel \s
per qualsiasi applicazione che ho provato finora (Perl , .NET, PCRE, Python). Dovrai prima normalizzare le stringhe (ad esempio sostituendo tutto lo \u3000
con \u0020
), oppure dovrai utilizzare un set di caratteri che include questo punto di codice oltre a qualsiasi altro spazio bianco che stai targeting, come ad esempio [ \t\u3000]
.
Se stai usando Perl o PCRE, si ha la possibilità di utilizzare il \h
scorciatoia per spazi orizzontali, che sembra includere lo spazio singolo byte, spazio doppio byte, e scheda, tra gli altri. Vedere il filo Match whitespace but not newlines (Perl) per maggiori dettagli.
Tuttavia, questa stenografia \h
non è stata implementata per .NET e C#, come meglio ho potuto dire.
fonte
2016-04-19 21:17:49
Spot on per il mio problema. Vedi anche http://stackoverflow.com/a/25956935/292060 per una classe di caratteri '\ h' perl-only, ma mostra che ci sono molti altri caratteri di spaziatura, nel caso tu abbia bisogno di aggiungerli alla lista qui. – goodeye
perché dovrebbe esserci uno spazio prima di '\ t'? – Ooker
@Ooker Per catturare uno spazio letterale – codemonkee