Questo comandoGNU grep regex `[一 - 十]` (1-10) non corrisponde al 四 carattere cinese (quattro)
$ echo '一二三四五六七八九十' | grep -oE '[一-十]'
uscite:
一
二
三
五
六
七
八
九
十
La regex [一-十]
(da uno a dieci) dovrebbe corrispondere ai numeri cinesi. Come nell'esempio, corrisponde a tutti i numeri cinesi da uno a dieci, eccetto il carattere cinese 四
(quattro)
Perché?
È un bug o uno scherzo?
Posso pensare questo come uno scherzo, perché in cinese '四' (quattro) suona allo stesso modo '事' (cosa). In effetti, in alcuni dialetti cinesi, condividono la stessa pronuncia. Quindi '一 二三 五六七 八 九十' (uno due tre cinque sette sette otto nove dieci) implica '沒 四' (non quattro), cioè '沒事' (niente)
BTW, la versione del grep che uso:
GNU grep 2.5.4
Grazie per la tua rapida risposta. Howerver, io uso '-' (caratteri ascii, non cinesi) invece di '一'. Quindi corrisponde a un intervallo. Puoi modificare la tua risposta? Allora posso accettarlo. – weakish
@wwishish bmargulies sta parlando del primo carattere del tuo intervallo, non del trattino tra gli endpoint. – lanzz
@lanzz Grazie per sottolineare il mio errore. '一' e '-' sono simili. Avrei dovuto notare 'U + 4E00'. – weakish