2017-02-06 11 views
0

Я борюсь со следующим текстом:Получить текст между двумя «»

c(\Study:\", \"Job:\", \"Branch:\", \"Position:\", \"Naming:\", NA, NA, \"Banker\", \"VP of Sales\", \"\", NA, NA, NA, NA, NA)" 

Я хотел бы получить от регулярных выражений, в VP of Sales. Вместо VP of Sales другие вещи могут быть точно в этом месте.

Я пробовал следующее, \\\"(.*?)\", которое фиксирует весь текст, но не VP of Sales.

Любые предложения? Я ценю ваш ответ!

+0

Это то, что вы хотите всегда в п-м столбце? Это единственный столбец, который содержит пробелы или содержит «из?» Как выглядят другие ряды данных? Более конкретно. В противном случае я просто рекомендую '\\\ (VP of Sales) \" ' –

+0

. Ваш ввод неверный. Вы упустили один '' 'между' Study' в начале текста. Правильное регулярное выражение должно быть '\\\" (. *?) \\\ "' –

+0

@WesFoster Вместо 'VP of Sales' другое все может быть именно в этом месте. Я хочу, чтобы 7-я колонна в основном. Любые предложения? – mrquad

ответ

2

Поскольку данные, которые вы хотите всегда быть в той же колонке, просто сделать это:

/(?:, [^,]+){7}, \\\"(.*?)\\\".*/g 

В основном, это пропускает первые столбцов (разделенные , [^,]) (количество может быть изменено в {7}) и захватывает данные в кавычках, которые появляются сразу после него, а затем игнорирует остальные.

Вот демо: http://www.regexpal.com/?fam=96828

+0

Обратите внимание, что это произойдет, если предыдущее поле содержит запятую (например, «Техническая, старшая»), которая кажется правдоподобной. Я сомневаюсь, что есть гораздо лучше сделать с регулярным выражением. – Aaron

+0

Исправить. Хорошо отметить, @Aaron –