У меня есть текстовый файл, содержащий некоторые строки, разделенные символом «,». Строки имеют форму: «x: somestring: любая строка». Меня интересует только извлечение значения «somestring». Я мог бы извлечь «SomeString: любая строка», заменив «х:» с «» использованием:Извлечь строки из файла csv в java
Pattern p= Pattern.compile("x:", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("");
Но, как я уже говорил, я заинтересован только в «SomeString». Можно ли добавить второй шаблон, чтобы заменить «: any string» на «». Я думал повторить тот же процесс снова, но я хотел спросить о лучшем пути. Есть ли способ улучшить мое регулярное выражение? Обратите внимание, что «somestring» и «any string» не являются фиксированными значениями.
ваши решения отлично работают. Но это означает, что я должен разбить строки в моем файле, так как это CSV-файл. Затем обрабатывайте каждую разделенную строку, используя ваш код в цикле. Мой файл будет иметь soooooo много строк. любые предложения по обработке моей последовательности строк (string1, string2, string3, ..etc.) сразу без необходимости разбивать каждую строку и обрабатывать их в цикле отдельно? –
Я бы избежал использования регулярных выражений для непосредственного анализа файла CSV. Это обязательно вызовет проблемы (подумайте о встроенных новых строках, цитируемых полях и т. Д.). Лучше использовать библиотеку CSV для обработки самого файла, а затем применить регулярные выражения к полям, которые вы проанализировали. –