2013-07-29 3 views
0

Хорошо, так что у меня есть база данных, где вы можете получить информацию, которая будет красоваться в таком роде образом:RegExp Удалить содержимое без запятых

ID, отображаемое имя, любит торт, любит кофе, нравится Собаки

Так что, если вы получите информацию, что бы показать что-то немного похоже на это:

1, анонимный, 1,0,1

Теперь он не очень популярен, поэтому я хотел бы показать людям, которые ответили на это, поэтому мне бы хотелось, чтобы «1,! Анонимный !, 1,0,1» (ничего за пределами!) Ушел. Я осмотрелся и нашел код RegExp, который удалял бы материал за пределами кавычек, но это довольно сложно, и я довольно нетерпелив, чтобы поместить все отображаемые имена в кавычки.

Итак, если бы был RegExp, который бы стереть числа, чтобы я мог поместить имена пользователей, было бы вкусно.

+1

не это только файл csv? –

+0

Если это база данных, почему бы просто не спросить только имя дисплея? – Tdelang

ответ

0

Ну, вы могли бы сделать что-то вроде этого:

Replae '^[^,]+([^,]+).*' With '$1' 

Как это выглядит именно на вашем языке может меняться, конечно.

Но в вашем случае это похоже на CSV, поэтому в этом случае проще не разбирать CSV-файл? Например. в PowerShell вы можете сделать

Import-Csv foo.csv | select 'Display name' 

а также для других языков, которые имеют такой синтаксический анализ. Кроме того, большинство других параметров могут ломаться в зависимости от ввода, потому что поля в CSV могут содержать запятые, которые ломаются как над регулярным выражением, так и методом наивного расщепления.

+0

Я пробовал это, и он, кажется, принимает полное предложение, а не только цифры + запятые. Обычно я пытаюсь использовать программу «Блокнот», чтобы попытаться найти этот RegExp, и если бы я заменил ваш RegExp ничем, он заменил бы целые предложения. Спасибо за помощь, хотя! - Я только что заметил ваше редактирование, позвольте мне попробовать это время – user2524703

+0

Да, извините, сменная часть была неправильной. Но, как я уже указывал, решение на основе регулярных выражений - это, вероятно, неправильный подход. – Joey

+0

Ах, ваш синтаксический анализ CSV работал намного быстрее и проще, чем я ожидал от RegExp. Большое спасибо! – user2524703

0

Вы можете разбить строку результата базы данных, а затем получить соответствующий индекс массива.

string dbString = "1,anonymous,1,0,1"; 
string username = dbString.Split(',')[1]; 

//value of username will be "anonymous" 
+0

Я обязательно позабочусь об этом, хотя работа с парсером CSV сработала, тем лучше знание. Благодаря! – user2524703

Смежные вопросы