Comprensión de la expresión regular en Java: split ("\ t") vs split ("\\ t"): cuándo funcionan ambos y cuándo deberían usarse

Recientemente he descubierto que no he estado usando expresiones regulares correctamente en mi código. Dado el ejemplo de una cadena delimitada por tabulacionesstr, He estado usandostr.split("\t"). Ahora me doy cuenta de que esto está mal y para que las pestañas coincidan correctamente, debería usarstr.split("\\t").

Sin embargo, me encuentro con este hecho por pura casualidad, ya que estaba buscando patrones de expresiones regulares para otra cosa. Ya ves, el código defectuososplit("\t")ha funcionado bastante bien en mi caso, y ahora estoy confundido sobre por qué funciona si es la forma incorrecta de declarar una expresión regular para que coincida con el carácter de tabulación. De ahí la pregunta, en aras de comprender realmente cómo se maneja la expresión regular en Java, en lugar de simplemente copiar el código en Eclipse y realmente no me importa por qué funciona ...

De manera similar, me he encontrado con un texto que no solo está delimitado por tabuladores sino también por comas. En términos más claros, las listas delimitadas por tabulaciones que estoy analizando a veces incluyen elementos "compuestos" que se parecen a:item1,item2,item3 y me gustaría analizarlos como elementos separados, en aras de la simplicidad. En ese caso, la expresión de expresión regular apropiada debería ser:line.split("[\\t,]")¿O me equivoco aquí también?

Gracias por adelantado,

Respuestas a la pregunta(2)

Su respuesta a la pregunta