Понимание регулярных выражений в Java: split («\ t») против split («\\ t») - когда они оба работают и когда их следует использовать
Недавно я понял, что я не использую регулярные выражения в моем коде должным образом. Приведенный пример строки с разделителями табуляцииstr
Я используюstr.split("\t")
, Теперь я понимаю, что это неправильно, и для правильного соответствия вкладок я должен использоватьstr.split("\\t")
.
Однако я случайно наткнулся на этот факт по чистой случайности, поскольку искал шаблоны регулярных выражений для чего-то другого. Вы видите, неисправный кодsplit("\t")
в моем случае работал довольно хорошо, и теперь я не понимаю, почему это работает, если это неправильный способ объявления регулярного выражения для соответствия символу табуляции. Отсюда вопрос, чтобы понять, как на самом деле обрабатывается регулярное выражение в Java, а не просто копировать код в Eclipse и не заботиться о том, почему он работает ...
Подобным образом я натолкнулся на фрагмент текста, который не только разделен табуляцией, но и запятыми. Проще говоря, списки, разделенные табуляцией, которые я анализирую, иногда содержат «составные» элементы, которые выглядят так:item1,item2,item3
и я хотел бы проанализировать их как отдельные элементы, для простоты. В этом случае соответствующее выражение регулярного выражения должно быть:line.split("[\\t,]")
или я тут тоже ошибаюсь ??
Заранее спасибо,